diff options
author | Aleksei Nikiforov <darktemplar@basealt.ru> | 2019-09-03 13:07:25 +0300 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2021-05-26 14:17:19 +0000 |
commit | 98a4861d5de8caeac6afbb8d4a50943b0bb71761 (patch) | |
tree | 18709783defab64a522de9577de5d7dbd71cd3ee /src/plugins | |
parent | e6b6f49d7128a5c7e1129c8d3a9e3af226d87593 (diff) |
Qt xcb: remove false detects of Qt::GroupSwitchModifier
In some cases, if X11 is configured with CapsLock as
keyboard language switch key, and CapsLock is toggled
via Shift+CapsLock key combination,
toggled CapsLock is falsely detected as Qt::GroupSwitchModifier
for subsequent key events.
This change fixes this false detect,
but doesn't fix detection of Qt::GroupSwitchModifier
which is likely still broken.
Fixes: QTBUG-49771
Change-Id: I485e2d4f3c654707c62adaba367c1b8afb3fc36c
Reviewed-by: Liang Qi <liang.qi@qt.io>
(cherry picked from commit 25a7034d78aeb12726a1052d64c0aa3314a1f69d)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
Diffstat (limited to 'src/plugins')
-rw-r--r-- | src/plugins/platforms/xcb/qxcbkeyboard.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/plugins/platforms/xcb/qxcbkeyboard.cpp b/src/plugins/platforms/xcb/qxcbkeyboard.cpp index 9ab804ca1b..7495d0fdc3 100644 --- a/src/plugins/platforms/xcb/qxcbkeyboard.cpp +++ b/src/plugins/platforms/xcb/qxcbkeyboard.cpp @@ -60,11 +60,11 @@ Qt::KeyboardModifiers QXcbKeyboard::translateModifiers(int s) const ret |= Qt::ShiftModifier; if (s & XCB_MOD_MASK_CONTROL) ret |= Qt::ControlModifier; - if (s & rmod_masks.alt) + if ((s & rmod_masks.alt) == rmod_masks.alt) ret |= Qt::AltModifier; - if (s & rmod_masks.meta) + if ((s & rmod_masks.meta) == rmod_masks.meta) ret |= Qt::MetaModifier; - if (s & rmod_masks.altgr) + if ((s & rmod_masks.altgr) == rmod_masks.altgr) ret |= Qt::GroupSwitchModifier; return ret; } |