diff options
Diffstat (limited to 'sd/source/ui/func/smarttag.cxx')
-rwxr-xr-x[-rw-r--r--] | sd/source/ui/func/smarttag.cxx | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/sd/source/ui/func/smarttag.cxx b/sd/source/ui/func/smarttag.cxx index 4246b11a5af8..a8b6c0647237 100644..100755 --- a/sd/source/ui/func/smarttag.cxx +++ b/sd/source/ui/func/smarttag.cxx @@ -172,6 +172,12 @@ void SmartTagSet::add( const SmartTagReference& xTag ) { maSet.insert( xTag ); mrView.InvalidateAllWin(); + + if( xTag == mxMouseOverTag ) + mxMouseOverTag.clear(); + + if( xTag == mxSelectedTag ) + mxSelectedTag.clear(); } // -------------------------------------------------------------------- @@ -182,6 +188,12 @@ void SmartTagSet::remove( const SmartTagReference& xTag ) if( aIter != maSet.end() ) maSet.erase( aIter ); mrView.InvalidateAllWin(); + + if( xTag == mxMouseOverTag ) + mxMouseOverTag.clear(); + + if( xTag == mxSelectedTag ) + mxSelectedTag.clear(); } // -------------------------------------------------------------------- @@ -193,6 +205,8 @@ void SmartTagSet::Dispose() for( std::set< SmartTagReference >::iterator aIter( aSet.begin() ); aIter != aSet.end(); ) (*aIter++)->Dispose(); mrView.InvalidateAllWin(); + mxMouseOverTag.clear(); + mxSelectedTag.clear(); } // -------------------------------------------------------------------- |