35 lines
1.6 KiB
Diff
35 lines
1.6 KiB
Diff
From f45cdeda88796830b3fe71aff7ceb1919d00400d Mon Sep 17 00:00:00 2001
|
|
From: Aurelien Lourot <aurelien.lourot@gmail.com>
|
|
Date: Thu, 10 Jan 2013 22:28:37 +0100
|
|
Subject: [PATCH] QTBUG-15319: fix shortcuts with secondary Xkb layout.
|
|
|
|
Change-Id: Iadb89137ec017b9dcd4d1588fd582ea46a9d7cc1
|
|
Reviewed-by: Aurelien <aurelien.lourot@gmail.com>
|
|
Reviewed-by: David Faure (KDE) <faure@kde.org>
|
|
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
|
---
|
|
src/gui/kernel/qkeymapper_x11.cpp | 5 ++++-
|
|
1 file changed, 4 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/src/gui/kernel/qkeymapper_x11.cpp b/src/gui/kernel/qkeymapper_x11.cpp
|
|
index 7daa41d..005ff3f 100644
|
|
--- a/src/gui/kernel/qkeymapper_x11.cpp
|
|
+++ b/src/gui/kernel/qkeymapper_x11.cpp
|
|
@@ -282,9 +282,12 @@ QList<int> QKeyMapperPrivate::possibleKeysXKB(QKeyEvent *event)
|
|
|
|
// first, translate key only using lock modifiers (there are no Qt equivalents for these, so we must
|
|
// always use them when determining the baseKeySym)
|
|
+ // Note: the Xkb group to be used for the conversion keycode->keysym has to be given to
|
|
+ // XkbLookupKeySym(). This information is contained in the bits 8 to 15 of xmodifiers.
|
|
+ // See https://bugreports.qt-project.org/browse/QTBUG-15319 .
|
|
KeySym baseKeySym;
|
|
uint consumedModifiers;
|
|
- if (!XkbLookupKeySym(X11->display, xkeycode, (xmodifiers & (LockMask | qt_num_lock_mask)),
|
|
+ if (!XkbLookupKeySym(X11->display, xkeycode, (xmodifiers & (0xff00 | LockMask | qt_num_lock_mask)),
|
|
&consumedModifiers, &baseKeySym))
|
|
return QList<int>();
|
|
|
|
--
|
|
1.8.3.1
|
|
|