summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sfx2/source/appl/childwin.cxx7
-rw-r--r--sfx2/source/inc/workwin.hxx1
2 files changed, 7 insertions, 1 deletions
diff --git a/sfx2/source/appl/childwin.cxx b/sfx2/source/appl/childwin.cxx
index 673b0c171616..3346ac2aa362 100644
--- a/sfx2/source/appl/childwin.cxx
+++ b/sfx2/source/appl/childwin.cxx
@@ -177,7 +177,12 @@ void SfxChildWindow::Destroy()
{
if ( GetFrame().is() )
{
- pImp->pWorkWin = NULL;
+ if (pImp->pWorkWin)
+ {
+ if (pImp->pWorkWin->GetActiveChild_Impl() == pWindow)
+ pImp->pWorkWin->SetActiveChild_Impl(NULL);
+ pImp->pWorkWin = NULL;
+ }
try
{
::com::sun::star::uno::Reference < ::com::sun::star::util::XCloseable > xClose( GetFrame(), ::com::sun::star::uno::UNO_QUERY );
diff --git a/sfx2/source/inc/workwin.hxx b/sfx2/source/inc/workwin.hxx
index 7233fe676838..9574b67b5147 100644
--- a/sfx2/source/inc/workwin.hxx
+++ b/sfx2/source/inc/workwin.hxx
@@ -322,6 +322,7 @@ public:
bool IsVisible_Impl( sal_uInt16 nMode ) const;
bool IsFloating( sal_uInt16 nId );
void SetActiveChild_Impl( vcl::Window *pChild );
+ VclPtr<vcl::Window> GetActiveChild_Impl() const { return pActiveChild; }
bool ActivateNextChild_Impl( bool bForward = true );
bool AllowChildWindowCreation_Impl( const SfxChildWin_Impl& i_rCW ) const;