Am 13.09.2018 um 18:09 schrieb V Stuart Foote:
* CTRL+ALT+E isn't opening the extension dialog but inserts a "é"
+ https://bugs.documentfoundation.org/show_bug.cgi?id=119676
+ bug?, see also 118269
+ why do we have a hot-key for that dialog ? (Michael)
+ not only this – other shortcuts with ctrl-alt (Heiko)
+ can we bisect it, find & prioritize it ? (Michael)
Set up my soap box in the [META] Ctrl+Alt (aka AltGR) keyboard shortcut issues
https://bugs.documentfoundation.org/show_bug.cgi?id=107244
Windows is especially afflicted with this because of the os remapping of <Ctrl>+<Alt> to <AltGr>
in multiple keyboard layouts. But it highlights issue for all os/DE that by locale or keyboard
choice clobber our default shortcut assignments.
Removing the few <Ctrl>+<Alt> shortcuts we've assigned globally or to modules seems reasonable,
but it just kicks things down the road for finding a better way to accomodate keyboard layouts
other the en-US
Couldn't find the bugs during ESC:
- https://bugs.documentfoundation.org/show_bug.cgi?id=95635
- https://bugs.documentfoundation.org/show_bug.cgi?id=95761
The 2nd one is in the [META] list.
The first is some really nice clash for German keyboards, as you need AltGr to type "][".
I've added my original patch, which AFAI remember didn't work.
From c221fc3a2c2c8f8899ce260909a11fd4a37d4cde Mon Sep 17 00:00:00 2001
From: Jan-Marek Glogowski <glogow@fbihome.de>
Date: Mon, 9 Nov 2015 17:24:16 +0100
Subject: [PATCH] tdf#95635 Invert left Ctrl eval in case of AltGr
Windows handles pressing AltGr as VK_RMENU && VK_LCONTROL.
In case of VK_RMENU the meaning of VK_LCONTROL is inverted, which
means left Ctrl is actually pressed, if VK_LCONTROL is not set!
Change-Id: I483dd582b454760ba0da2fdfb269b2369bf8683c
---
vcl/win/source/window/salframe.cxx | 14 +++++++++++---
1 file changed, 11 insertions(+), 3 deletions(-)
diff --git a/vcl/win/source/window/salframe.cxx b/vcl/win/source/window/salframe.cxx
index 0203b05232b3..905454e45678 100644
--- a/vcl/win/source/window/salframe.cxx
+++ b/vcl/win/source/window/salframe.cxx
@@ -3508,14 +3508,22 @@ static long ImplHandleKeyMsg( HWND hWnd, UINT nMsg,
tmpCode |= MODKEY_LSHIFT;
if( GetKeyState( VK_RSHIFT ) & 0x8000 )
tmpCode |= MODKEY_RSHIFT;
- if( GetKeyState( VK_LCONTROL ) & 0x8000 )
- tmpCode |= MODKEY_LMOD1;
if( GetKeyState( VK_RCONTROL ) & 0x8000 )
tmpCode |= MODKEY_RMOD1;
if( GetKeyState( VK_LMENU ) & 0x8000 )
tmpCode |= MODKEY_LMOD2;
- if( GetKeyState( VK_RMENU ) & 0x8000 )
+
+ // Pressing AltGr is handled as VK_RMENU && VK_LCONTROL!
+ // If VK_LCONTROL is not set the left Ctrl is actually pressed and
+ // so for AltGr the evaluation of VK_LCONTROL has to be inverted
+ if( GetKeyState( VK_RMENU ) & 0x8000 )
+ {
tmpCode |= MODKEY_RMOD2;
+ if( ! ( GetKeyState( VK_LCONTROL ) & 0x8000 ) )
+ tmpCode |= MODKEY_LMOD1;
+ }
+ else if( GetKeyState( VK_LCONTROL ) & 0x8000 )
+ tmpCode |= MODKEY_LMOD1;
if( tmpCode < nLastModKeyCode )
{
--
2.17.0
Context
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.