[Libreoffice-commits] core.git: Branch 'libreoffice-5-1' - sw/source
Caolán McNamara
caolanm at redhat.com
Thu May 26 08:23:12 UTC 2016
sw/source/uibase/inc/inputwin.hxx | 2 +-
sw/source/uibase/ribbar/inputwin.cxx | 9 ++++++---
2 files changed, 7 insertions(+), 4 deletions(-)
New commits:
commit 97d0e7be1ad95adcd13fff507885047bdcd54d82
Author: Caolán McNamara <caolanm at 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
(cherry picked from commit 77e7dc648ebb8b7d946111e2be4dfdbba72840b2)
Reviewed-on: https://gerrit.libreoffice.org/25446
Tested-by: Jenkins <ci at libreoffice.org>
Reviewed-by: Miklos Vajna <vmiklos at collabora.co.uk>
diff --git a/sw/source/uibase/inc/inputwin.hxx b/sw/source/uibase/inc/inputwin.hxx
index 97fc259..606ec48 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 178be93..5acc97b 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);
}
More information about the Libreoffice-commits
mailing list