diff options
author | Jan Holesovsky <kendy@collabora.com> | 2015-11-06 08:06:00 +0100 |
---|---|---|
committer | Jan Holesovsky <kendy@collabora.com> | 2015-11-06 18:38:31 +0100 |
commit | 51c14b1c262bced0cb61c943caad044be9e95c15 (patch) | |
tree | 07895eee92ee32fa1ec031701d3b45f9b3da3c02 | |
parent | 064fb1f73abbc103226a8fce8a46b7e8b8347dac (diff) |
tdf#92866 startcenter: Make the accellerators work again.
I still have no idea what is the root cause here (why the accellerators do not
work 'automagically') - I suspect it is because we don't have a shell there,
and instead only a vcl::Window, or something like that :-)
Either way, when we handle the accellerators already in PreNotify(), it works
as expected, so let's live with that for the time being.
Change-Id: Id050fd8f5fff38914821cb64eaa3ae7281fc6d50
-rw-r--r-- | sfx2/source/dialog/backingwindow.cxx | 17 | ||||
-rw-r--r-- | sfx2/source/dialog/backingwindow.hxx | 1 |
2 files changed, 5 insertions, 13 deletions
diff --git a/sfx2/source/dialog/backingwindow.cxx b/sfx2/source/dialog/backingwindow.cxx index c487880e15c0..54ac9a64dfc1 100644 --- a/sfx2/source/dialog/backingwindow.cxx +++ b/sfx2/source/dialog/backingwindow.cxx @@ -413,6 +413,7 @@ bool BackingWindow::PreNotify( NotifyEvent& rNEvt ) { const KeyEvent* pEvt = rNEvt.GetKeyEvent(); const vcl::KeyCode& rKeyCode(pEvt->GetKeyCode()); + // Subwindows of BackingWindow: Sidebar and Thumbnail view if( rKeyCode.GetCode() == KEY_F6 ) { @@ -438,28 +439,20 @@ bool BackingWindow::PreNotify( NotifyEvent& rNEvt ) } } } - } - return Window::PreNotify( rNEvt ); -} -bool BackingWindow::Notify( NotifyEvent& rNEvt ) -{ - if( rNEvt.GetType() == MouseNotifyEvent::KEYINPUT ) - { // try the 'normal' accelerators (so that eg. Ctrl+Q works) - if( !mpAccExec ) + if (!mpAccExec) { mpAccExec = svt::AcceleratorExecute::createAcceleratorHelper(); mpAccExec->init( comphelper::getProcessComponentContext(), mxFrame); } - const KeyEvent* pEvt = rNEvt.GetKeyEvent(); - const vcl::KeyCode& rKeyCode(pEvt->GetKeyCode()); + const OUString aCommand = mpAccExec->findCommand(svt::AcceleratorExecute::st_VCLKey2AWTKey(rKeyCode)); - if((aCommand != "vnd.sun.star.findbar:FocusToFindbar") && pEvt && mpAccExec->execute(rKeyCode)) + if ((aCommand != "vnd.sun.star.findbar:FocusToFindbar") && pEvt && mpAccExec->execute(rKeyCode)) return true; } - return Window::Notify( rNEvt ); + return Window::PreNotify( rNEvt ); } void BackingWindow::GetFocus() diff --git a/sfx2/source/dialog/backingwindow.hxx b/sfx2/source/dialog/backingwindow.hxx index f7d1d12cbe53..e31daccfc7ab 100644 --- a/sfx2/source/dialog/backingwindow.hxx +++ b/sfx2/source/dialog/backingwindow.hxx @@ -123,7 +123,6 @@ public: virtual void Paint(vcl::RenderContext& rRenderContext, const Rectangle& rRect) override; virtual void Resize() override; virtual bool PreNotify(NotifyEvent& rNEvt) override; - virtual bool Notify(NotifyEvent& rNEvt) override; virtual void GetFocus() override; virtual Size GetOptimalSize() const override; |