summaryrefslogtreecommitdiff
path: root/sd/source/ui/accessibility
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2011-04-14 14:16:39 +0100
committerCaolán McNamara <caolanm@redhat.com>2011-04-14 14:17:43 +0100
commit525607144c82c88e457963e149bcee41d896a508 (patch)
treec429d5cfb727344f3d9a2eab4587291e91c17062 /sd/source/ui/accessibility
parentf7ccecc999b44bb3e077c6205a0719e55e8784ff (diff)
fix accessibility crash
two different callbacks connected to the same destination where that destination unset the callback id of one of the callbacks
Diffstat (limited to 'sd/source/ui/accessibility')
-rw-r--r--sd/source/ui/accessibility/AccessibleSlideSorterView.cxx14
1 files changed, 12 insertions, 2 deletions
diff --git a/sd/source/ui/accessibility/AccessibleSlideSorterView.cxx b/sd/source/ui/accessibility/AccessibleSlideSorterView.cxx
index bd399cb19bb4..14a24d22afcf 100644
--- a/sd/source/ui/accessibility/AccessibleSlideSorterView.cxx
+++ b/sd/source/ui/accessibility/AccessibleSlideSorterView.cxx
@@ -94,6 +94,7 @@ public:
DECL_LINK(SelectionChangeListener, void*);
DECL_LINK(BroadcastSelectionChange, void*);
DECL_LINK(FocusChangeListener, void*);
+ DECL_LINK(VisibilityChangeListener, void*);
DECL_LINK(UpdateChildrenCallback, void*);
private:
@@ -975,7 +976,7 @@ void AccessibleSlideSorterView::Implementation::ConnectListeners (void)
mrSlideSorter.GetController().GetFocusManager().AddFocusChangeListener(
LINK(this,AccessibleSlideSorterView::Implementation,FocusChangeListener));
mrSlideSorter.GetView().AddVisibilityChangeListener(
- LINK(this,AccessibleSlideSorterView::Implementation,UpdateChildrenCallback));
+ LINK(this,AccessibleSlideSorterView::Implementation,VisibilityChangeListener));
}
@@ -988,7 +989,7 @@ void AccessibleSlideSorterView::Implementation::ReleaseListeners (void)
mrSlideSorter.GetController().GetSelectionManager()->RemoveSelectionChangeListener(
LINK(this,AccessibleSlideSorterView::Implementation,SelectionChangeListener));
mrSlideSorter.GetView().RemoveVisibilityChangeListener(
- LINK(this,AccessibleSlideSorterView::Implementation,UpdateChildrenCallback));
+ LINK(this,AccessibleSlideSorterView::Implementation,VisibilityChangeListener));
if (mpWindow != NULL)
mpWindow->RemoveEventListener(
@@ -1137,6 +1138,15 @@ IMPL_LINK(AccessibleSlideSorterView::Implementation, UpdateChildrenCallback, voi
+IMPL_LINK(AccessibleSlideSorterView::Implementation, VisibilityChangeListener, void*, EMPTYARG )
+{
+ UpdateChildren();
+ return 1;
+}
+
+
+
+
} // end of namespace ::accessibility
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */