Kaydet (Commit) d0d9acc7 authored tarafından Jim Raykowski's avatar Jim Raykowski

tdf#125525 Allow shortcut keys from sidebar docking window

Fix for tdf#115434 prevents key presses being passed through to document
window from the sidebar docking window. This patch only prevents left,
right, down, up, page down/up, home, end, backspace, delete, insert and
return keys from being passed.

Change-Id: I97ab60a214cb9910f526a475f3134784728b7d9a
Reviewed-on: https://gerrit.libreoffice.org/73073
Tested-by: Jenkins
Reviewed-by: 's avatarJim Raykowski <raykowj@gmail.com>
üst caeb6ff6
......@@ -126,25 +126,39 @@ bool SidebarDockingWindow::EventNotify(NotifyEvent& rEvent)
if (MouseNotifyEvent::KEYINPUT == nType)
{
const vcl::KeyCode& rKeyCode = rEvent.GetKeyEvent()->GetKeyCode();
if (!(rKeyCode.GetCode() == KEY_F10 && rKeyCode.GetModifier() &&
rKeyCode.IsShift() && rKeyCode.IsMod1()))
switch (rKeyCode.GetCode())
{
if (!mpAccel)
case KEY_UP:
case KEY_DOWN:
case KEY_PAGEUP:
case KEY_PAGEDOWN:
case KEY_HOME:
case KEY_END:
case KEY_LEFT:
case KEY_RIGHT:
case KEY_BACKSPACE:
case KEY_DELETE:
case KEY_INSERT:
case KEY_RETURN:
{
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" );
if ( xPanelDescriptor && mpSidebarController->IsDeckVisible( xPanelDescriptor->msDeckId ) )
Close();
return true;
}
if (".uno:Sidebar" != aCommand)
return true;
default:
break;
}
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" );
if ( xPanelDescriptor && mpSidebarController->IsDeckVisible( xPanelDescriptor->msDeckId ) )
Close();
return true;
}
}
else if (MouseNotifyEvent::MOUSEBUTTONDOWN == nType)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment