[Libreoffice-qa] minutes of ESC call ...
Jan-Marek Glogowski
glogow at fbihome.de
Thu Sep 13 17:06:18 UTC 2018
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 at 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
More information about the LibreOffice
mailing list