diff options
author | Caolán McNamara <caolanm@redhat.com> | 2015-06-05 10:36:32 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2015-06-05 13:20:50 +0100 |
commit | 8f99f936326342566067c849fbf27867825b81cf (patch) | |
tree | 9aa763c0e5b83ac4bb3e15a4d5fc426acce8c249 /sfx2 | |
parent | f170b307f6a0f98a3ef5670f64c14d89cfa0fb33 (diff) |
Resolves: tdf#91864 unset a dying childwindow as the active window
Change-Id: Ief014895facbc092913b3069ed04cace1e233ff0
Diffstat (limited to 'sfx2')
-rw-r--r-- | sfx2/source/appl/childwin.cxx | 7 | ||||
-rw-r--r-- | sfx2/source/inc/workwin.hxx | 1 |
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; |