diff options
author | Frank Schoenheit [fs] <frank.schoenheit@sun.com> | 2010-04-09 08:48:30 +0200 |
---|---|---|
committer | Frank Schoenheit [fs] <frank.schoenheit@sun.com> | 2010-04-09 08:48:30 +0200 |
commit | fb1d597546d2a7a974f008c962d81b49a87115a0 (patch) | |
tree | fe2576cb35807b60b4c1a7c88310ecbf4aaa15f7 /svtools | |
parent | b74f6441cc4cb098053269988082d9736fab2661 (diff) |
slidecopy: do nothing in GetFocus if we're just dying
Diffstat (limited to 'svtools')
-rwxr-xr-x | svtools/source/toolpanel/toolpaneldeck.cxx | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/svtools/source/toolpanel/toolpaneldeck.cxx b/svtools/source/toolpanel/toolpaneldeck.cxx index 349677a1e9ce..af12a39f75ab 100755 --- a/svtools/source/toolpanel/toolpaneldeck.cxx +++ b/svtools/source/toolpanel/toolpaneldeck.cxx @@ -83,6 +83,7 @@ namespace svt ,m_aPanels() ,m_pDummyPanel( new DummyPanel ) ,m_pLayouter() + ,m_bInDtor( false ) ,m_pAccessibleParent( NULL ) { m_aPanels.AddListener( *this ); @@ -92,6 +93,7 @@ namespace svt ~ToolPanelDeck_Impl() { + m_bInDtor = true; } PDeckLayouter GetLayouter() const { return m_pLayouter; } @@ -99,6 +101,8 @@ namespace svt Window& GetPanelWindowAnchor() { return m_aPanelAnchor; } + bool IsDead() const { return m_bInDtor; } + /// notifies our listeners that we're going to die. Only to be called from with our anti-impl's destructor void NotifyDying() { @@ -145,9 +149,8 @@ namespace svt ToolPanelCollection m_aPanels; PToolPanel m_pDummyPanel; PanelDeckListeners m_aListeners; - PDeckLayouter m_pLayouter; - + bool m_bInDtor; Window* m_pAccessibleParent; }; @@ -508,6 +511,8 @@ namespace svt void ToolPanelDeck::GetFocus() { Control::GetFocus(); + if ( m_pImpl->IsDead() ) + return; if ( !m_pImpl->FocusActivePanel() ) { PDeckLayouter pLayouter( GetLayouter() ); |