diff options
Diffstat (limited to 'svx')
-rw-r--r-- | svx/source/accessibility/AccessibleFrameSelector.cxx | 8 | ||||
-rw-r--r-- | svx/source/inc/AccessibleFrameSelector.hxx | 1 |
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; |