sfx2/source/appl/workwin.cxx | 23 ++++++++++------------- sw/source/uibase/inc/inputwin.hxx | 2 +- sw/source/uibase/ribbar/inputwin.cxx | 9 ++++++--- 3 files changed, 17 insertions(+), 17 deletions(-)
New commits: commit 77e7dc648ebb8b7d946111e2be4dfdbba72840b2 Author: Caolán McNamara <caol...@redhat.com> Date: Wed May 25 11:53:34 2016 +0100 Resolves: tdf#96244 get the right Writer window view for Formula window if you hit F1 and F2 together, then the help window is a writer window too (in disguise) so asking for the "active view" on processing the F2 in the real writer will get the help window as the active view, which doesn't match expectations. Take the view from the bindings, where its correct from when the event has been dispatched. Investigating a bit further, the F2 formula window only works correctly when its in an "active" window. So get the correct view from the dispatcher but only accept that view if its the active one. Change-Id: I2fd52ca6b68e887d34b07b70b830722f1d00b37a diff --git a/sw/source/uibase/inc/inputwin.hxx b/sw/source/uibase/inc/inputwin.hxx index e333898..78531cb 100644 --- a/sw/source/uibase/inc/inputwin.hxx +++ b/sw/source/uibase/inc/inputwin.hxx @@ -79,7 +79,7 @@ protected: void CancelFormula(); public: - SwInputWindow( vcl::Window* pParent ); + SwInputWindow(vcl::Window* pParent, SfxDispatcher* pDispatcher); virtual ~SwInputWindow(); virtual void dispose() override; diff --git a/sw/source/uibase/ribbar/inputwin.cxx b/sw/source/uibase/ribbar/inputwin.cxx index c58953e..90df573 100644 --- a/sw/source/uibase/ribbar/inputwin.cxx +++ b/sw/source/uibase/ribbar/inputwin.cxx @@ -56,7 +56,7 @@ SFX_IMPL_POS_CHILDWINDOW_WITHID( SwInputChild, FN_EDIT_FORMULA, SFX_OBJECTBAR_OBJECT ) -SwInputWindow::SwInputWindow( vcl::Window* pParent ) +SwInputWindow::SwInputWindow(vcl::Window* pParent, SfxDispatcher* pDispatcher) : ToolBox( pParent , SW_RES( RID_TBX_FORMULA )), aPos( VclPtr<Edit>::Create(this, SW_RES(ED_POS))), aEdit( VclPtr<InputEdit>::Create(this, WB_3DLOOK|WB_TABSTOP|WB_BORDER|WB_NOHIDESELECTION)), @@ -79,7 +79,10 @@ SwInputWindow::SwInputWindow( vcl::Window* pParent ) SfxImageManager* pManager = SfxImageManager::GetImageManager( *SW_MOD() ); pManager->RegisterToolBox(this); - pView = ::GetActiveView(); + SwView *pDispatcherView = dynamic_cast<SwView*>(pDispatcher ? pDispatcher->GetFrame()->GetViewShell() : nullptr); + SwView* pActiveView = ::GetActiveView(); + if (pDispatcherView == pActiveView) + pView = pActiveView; pWrtShell = pView ? pView->GetWrtShellPtr() : nullptr; InsertWindow( ED_POS, aPos.get(), ToolBoxItemBits::NONE, 0); @@ -620,7 +623,7 @@ SwInputChild::SwInputChild(vcl::Window* _pParent, SfxChildWindow( _pParent, nId ) { pDispatch = pBindings->GetDispatcher(); - SetWindow( VclPtr<SwInputWindow>::Create( _pParent ) ); + SetWindow(VclPtr<SwInputWindow>::Create(_pParent, pDispatch)); static_cast<SwInputWindow*>(GetWindow())->ShowWin(); SetAlignment(SfxChildAlignment::LOWESTTOP); } commit 7e5ade130910006d50a8fdb9cde00c17c06014b7 Author: Caolán McNamara <caol...@redhat.com> Date: Wed May 25 10:45:36 2016 +0100 because pCW->bCreate is always set to true, the conditional isn't useful Change-Id: Icba66b3832cdf8dbd916604f08cb1d5f9bb81873 diff --git a/sfx2/source/appl/workwin.cxx b/sfx2/source/appl/workwin.cxx index 462b8a5..537405c 100644 --- a/sfx2/source/appl/workwin.cxx +++ b/sfx2/source/appl/workwin.cxx @@ -1897,20 +1897,17 @@ void SfxWorkWindow::ToggleChildWindow_Impl(sal_uInt16 nId, bool bSetFocus) else { pCW->bCreate = true; - if ( pCW->bCreate ) + if ( pChild ) { - if ( pChild ) - { - ShowChildWindow_Impl( nId, true, bSetFocus ); - } - else - { - // create actual Window - CreateChildWin_Impl( pCW, bSetFocus ); - if ( !pCW->pWin ) - // no success - pCW->bCreate = false; - } + ShowChildWindow_Impl( nId, true, bSetFocus ); + } + else + { + // create actual Window + CreateChildWin_Impl( pCW, bSetFocus ); + if ( !pCW->pWin ) + // no success + pCW->bCreate = false; } } }
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits