summaryrefslogtreecommitdiffstats
path: root/src/plugins
diff options
context:
space:
mode:
authorAleksei Nikiforov <darktemplar@basealt.ru>2019-09-03 13:07:25 +0300
committerLiang Qi <liang.qi@qt.io>2021-05-26 11:02:08 +0000
commit25a7034d78aeb12726a1052d64c0aa3314a1f69d (patch)
tree0e626eccabeea8235c37ec1bc37c2f7e7f992370 /src/plugins
parentd790e9fda9c3b61ea22807840fbe314e8daf24db (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 Pick-to: 5.15 6.0 6.1 Change-Id: I485e2d4f3c654707c62adaba367c1b8afb3fc36c Reviewed-by: Liang Qi <liang.qi@qt.io>
Diffstat (limited to 'src/plugins')
-rw-r--r--src/plugins/platforms/xcb/qxcbkeyboard.cpp6
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;
}