From cd47735d07eafcb01cdeb9ffc6a57fdb4e81394a Mon Sep 17 00:00:00 2001 From: Aurelien Date: Wed, 9 Jan 2013 00:35:50 +0100 Subject: [PATCH] QTBUG-15319 --- src/gui/kernel/qkeymapper_x11.cpp | 5 ++++- 1 files changed, 4 insertions(+), 1 deletions(-) diff --git a/src/gui/kernel/qkeymapper_x11.cpp b/src/gui/kernel/qkeymapper_x11.cpp index b96b4f6..0627c73 100644 --- a/src/gui/kernel/qkeymapper_x11.cpp +++ b/src/gui/kernel/qkeymapper_x11.cpp @@ -282,9 +282,12 @@ QList 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(); -- 1.7.4.1