summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTor Lillqvist <tml@iki.fi>2012-09-09 14:38:51 +0300
committerMichael Meeks <michael.meeks@suse.com>2012-09-10 08:04:00 +0100
commit06c1c15b706870c2a134bc14845e25a8b30cdac1 (patch)
treed66639432f03db92af481833833801f02b395c34
parent8a861b99ee0b53d03b6f93a3bd6d256a27172ace (diff)
fdo#47368: Remove event listener also in Invalidate()
Change-Id: Ifa3d7ff400137b4560fa0ff890cd211147c5c234 Signed-off-by: Michael Meeks <michael.meeks@suse.com>
-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;