summaryrefslogtreecommitdiff
path: root/svtools/source/toolpanel
diff options
context:
space:
mode:
authorFrank Schoenheit [fs] <frank.schoenheit@sun.com>2010-04-09 08:48:30 +0200
committerFrank Schoenheit [fs] <frank.schoenheit@sun.com>2010-04-09 08:48:30 +0200
commitfb1d597546d2a7a974f008c962d81b49a87115a0 (patch)
treefe2576cb35807b60b4c1a7c88310ecbf4aaa15f7 /svtools/source/toolpanel
parentb74f6441cc4cb098053269988082d9736fab2661 (diff)
slidecopy: do nothing in GetFocus if we're just dying
Diffstat (limited to 'svtools/source/toolpanel')
-rwxr-xr-xsvtools/source/toolpanel/toolpaneldeck.cxx9
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() );