include/sfx2/sidebar/SidebarController.hxx    |    2 ++
 include/sfx2/sidebar/SidebarDockingWindow.hxx |    3 +++
 include/sfx2/sidebar/TabBar.hxx               |    2 ++
 sfx2/source/sidebar/SidebarDockingWindow.cxx  |   10 ++++++++--
 sfx2/source/sidebar/TabBar.cxx                |    8 +++++++-
 5 files changed, 22 insertions(+), 3 deletions(-)

New commits:
commit 69c826957362be0de36bff190d299545a5780e1a
Author:     Jim Raykowski <rayk...@gmail.com>
AuthorDate: Mon Oct 8 16:29:13 2018 -0800
Commit:     Mike Kaganski <mike.kagan...@collabora.com>
CommitDate: Wed Oct 10 17:32:37 2018 +0200

    Unhardcode sidebar used customizable key bindings
    
    Change-Id: Ia3bc171e2c9805955394fac274de382c3f87d35f
    Reviewed-on: https://gerrit.libreoffice.org/61564
    Tested-by: Jenkins
    Reviewed-by: Mike Kaganski <mike.kagan...@collabora.com>

diff --git a/include/sfx2/sidebar/SidebarController.hxx 
b/include/sfx2/sidebar/SidebarController.hxx
index c314391f195a..c81e306736bd 100644
--- a/include/sfx2/sidebar/SidebarController.hxx
+++ b/include/sfx2/sidebar/SidebarController.hxx
@@ -168,6 +168,8 @@ public:
 
     tools::Rectangle GetDeckDragArea() const;
 
+    css::uno::Reference<css::frame::XFrame> getXFrame() {return mxFrame;}
+
 private:
     SidebarController(
         SidebarDockingWindow* pParentWindow,
diff --git a/include/sfx2/sidebar/SidebarDockingWindow.hxx 
b/include/sfx2/sidebar/SidebarDockingWindow.hxx
index 2df114e1c585..931cb34c5c6b 100644
--- a/include/sfx2/sidebar/SidebarDockingWindow.hxx
+++ b/include/sfx2/sidebar/SidebarDockingWindow.hxx
@@ -23,6 +23,8 @@
 
 #include <rtl/ref.hxx>
 
+#include <svtools/acceleratorexecute.hxx>
+
 namespace sfx2 { namespace sidebar {
 
 class SidebarChildWindow;
@@ -55,6 +57,7 @@ protected:
 private:
     ::rtl::Reference<sfx2::sidebar::SidebarController> mpSidebarController;
     bool mbIsReadyToDrag;
+    std::unique_ptr<svt::AcceleratorExecute> mpAccel;
 
     void DoDispose();
 };
diff --git a/include/sfx2/sidebar/TabBar.hxx b/include/sfx2/sidebar/TabBar.hxx
index c672bcbf71d0..0c6cd097711c 100644
--- a/include/sfx2/sidebar/TabBar.hxx
+++ b/include/sfx2/sidebar/TabBar.hxx
@@ -31,6 +31,7 @@
 
 #include <functional>
 
+#include <svtools/acceleratorexecute.hxx>
 
 class Button;
 class CheckBox;
@@ -119,6 +120,7 @@ private:
     DECL_LINK(OnToolboxClicked, Button*, void);
 
     SidebarController* pParentSidebarController;
+    std::unique_ptr<svt::AcceleratorExecute> mpAccel;
 
 };
 
diff --git a/sfx2/source/sidebar/SidebarDockingWindow.cxx 
b/sfx2/source/sidebar/SidebarDockingWindow.cxx
index 9c1f9c66dc32..1ed62e98e5af 100644
--- a/sfx2/source/sidebar/SidebarDockingWindow.cxx
+++ b/sfx2/source/sidebar/SidebarDockingWindow.cxx
@@ -121,7 +121,13 @@ bool SidebarDockingWindow::EventNotify(NotifyEvent& rEvent)
     if (MouseNotifyEvent::KEYINPUT == nType)
     {
         const vcl::KeyCode& rKeyCode = rEvent.GetKeyEvent()->GetKeyCode();
-        if ( ( 0 == rKeyCode.GetModifier() ) && ( KEY_F11 == 
rKeyCode.GetCode() ) )
+        if (!mpAccel)
+        {
+            mpAccel = svt::AcceleratorExecute::createAcceleratorHelper();
+            mpAccel->init(comphelper::getProcessComponentContext(), 
mpSidebarController->getXFrame());
+        }
+        const OUString 
aCommand(mpAccel->findCommand(svt::AcceleratorExecute::st_VCLKey2AWTKey(rKeyCode)));
+        if (".uno:DesignerDialog" == aCommand)
         {
             std::shared_ptr<PanelDescriptor> xPanelDescriptor =
                     
mpSidebarController->GetResourceManager()->GetPanelDescriptor( "StyleListPanel" 
);
@@ -129,7 +135,7 @@ bool SidebarDockingWindow::EventNotify(NotifyEvent& rEvent)
                 Close();
             return true;
         }
-        if ( !( ( KEY_MOD1 == rKeyCode.GetModifier() ) && ( KEY_F5 == 
rKeyCode.GetCode() ) ) )
+        if (".uno:Sidebar" != aCommand)
             return true;
     }
     else if (MouseNotifyEvent::MOUSEBUTTONDOWN == nType)
diff --git a/sfx2/source/sidebar/TabBar.cxx b/sfx2/source/sidebar/TabBar.cxx
index c69b6b17bb97..4d6a67ed22d2 100644
--- a/sfx2/source/sidebar/TabBar.cxx
+++ b/sfx2/source/sidebar/TabBar.cxx
@@ -233,7 +233,13 @@ bool TabBar::EventNotify(NotifyEvent& rEvent)
     if(MouseNotifyEvent::KEYINPUT == nType)
     {
         const vcl::KeyCode& rKeyCode = rEvent.GetKeyEvent()->GetKeyCode();
-        if((KEY_MOD1 == rKeyCode.GetModifier()) && (KEY_F5 == 
rKeyCode.GetCode()))
+        if (!mpAccel)
+        {
+            mpAccel = svt::AcceleratorExecute::createAcceleratorHelper();
+            mpAccel->init(comphelper::getProcessComponentContext(), mxFrame);
+        }
+        const OUString 
aCommand(mpAccel->findCommand(svt::AcceleratorExecute::st_VCLKey2AWTKey(rKeyCode)));
+        if (".uno:Sidebar" == aCommand)
             return vcl::Window::EventNotify(rEvent);
         return true;
     }
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to