Date: prev next · Thread: first prev next last
2018 Archives by date, by thread · List index



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.