summaryrefslogtreecommitdiff
path: root/vcl/unx/gtk/a11y/atklistener.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'vcl/unx/gtk/a11y/atklistener.cxx')
-rw-r--r--vcl/unx/gtk/a11y/atklistener.cxx9
1 files changed, 9 insertions, 0 deletions
diff --git a/vcl/unx/gtk/a11y/atklistener.cxx b/vcl/unx/gtk/a11y/atklistener.cxx
index 9dfa66862b0b..5cc6083fc288 100644
--- a/vcl/unx/gtk/a11y/atklistener.cxx
+++ b/vcl/unx/gtk/a11y/atklistener.cxx
@@ -196,6 +196,15 @@ void AtkListener::handleChildRemoved(
// for now.
if( nIndex >= 0 )
{
+ uno::Reference<accessibility::XAccessibleEventBroadcaster> xBroadcaster(
+ rxChild->getAccessibleContext(), uno::UNO_QUERY);
+
+ if (xBroadcaster.is())
+ {
+ uno::Reference<accessibility::XAccessibleEventListener> xListener(this);
+ xBroadcaster->removeAccessibleEventListener(xListener);
+ }
+
updateChildList(rxParent);
AtkObject * pChild = atk_object_wrapper_ref( rxChild, false );