summaryrefslogtreecommitdiff
path: root/svx
diff options
context:
space:
mode:
Diffstat (limited to 'svx')
-rw-r--r--svx/source/accessibility/AccessibleFrameSelector.cxx8
-rw-r--r--svx/source/inc/AccessibleFrameSelector.hxx1
2 files changed, 9 insertions, 0 deletions
diff --git a/svx/source/accessibility/AccessibleFrameSelector.cxx b/svx/source/accessibility/AccessibleFrameSelector.cxx
index 925be9444d80..1def70a851db 100644
--- a/svx/source/accessibility/AccessibleFrameSelector.cxx
+++ b/svx/source/accessibility/AccessibleFrameSelector.cxx
@@ -101,6 +101,13 @@ AccFrameSelector::AccFrameSelector( FrameSelector& rFrameSel, FrameBorderType eB
AccFrameSelector::~AccFrameSelector()
{
+ RemoveFrameSelEventListener();
+}
+
+// ----------------------------------------------------------------------------
+
+void AccFrameSelector::RemoveFrameSelEventListener()
+{
if ( mpFrameSel )
{
mpFrameSel->RemoveEventListener( LINK( this, AccFrameSelector, WindowEventListener ) );
@@ -709,6 +716,7 @@ void AccFrameSelector::NotifyAccessibleEvent( const sal_Int16 _nEventId,
void AccFrameSelector::Invalidate()
{
+ RemoveFrameSelEventListener();
mpFrameSel = 0;
EventObject aEvent;
Reference < XAccessibleContext > xThis( this );
diff --git a/svx/source/inc/AccessibleFrameSelector.hxx b/svx/source/inc/AccessibleFrameSelector.hxx
index 3204b62ce84c..6a55c006b45e 100644
--- a/svx/source/inc/AccessibleFrameSelector.hxx
+++ b/svx/source/inc/AccessibleFrameSelector.hxx
@@ -127,6 +127,7 @@ protected:
private:
void IsValid() throw (::com::sun::star::uno::RuntimeException);
+ void RemoveFrameSelEventListener();
FrameSelector* mpFrameSel;
::osl::Mutex maFocusMutex;