diff options
author | Rodney Dawes <dobey.pwns@gmail.com> | 2021-10-04 16:31:30 -0400 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2021-10-15 16:23:29 +0000 |
commit | 1887f6b4b6e689dcb1c60f1e78fffac31e5ce4a6 (patch) | |
tree | aa92963621e9485f1bb38406421ab329295da6f2 | |
parent | a9cadc1dcfb282bec1a3ca01f2f4d93b9999e4f3 (diff) | |
download | qtwayland-1887f6b4b6e689dcb1c60f1e78fffac31e5ce4a6.tar.gz |
Fix the logic for decoding modifiers map in Wayland text input protocol
Correctly check for the flags in the modifiers map when we get it from
the compositor, instead of modifying the map in the for loop conditional.
[ChangeLog][QWaylandInputContext] Fix modifiers map decoding
logic when receiving the map from the compositor.
Fixes: QTBUG-97094
Change-Id: Idad19f7b1f4560d40abbb5b31032360cfe915261
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
(cherry picked from commit baa7ef511bf40280448e5f0e721ddd6da3301f3b)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rw-r--r-- | src/client/qwaylandinputcontext.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/client/qwaylandinputcontext.cpp b/src/client/qwaylandinputcontext.cpp index 0151dfc9..c26f9558 100644 --- a/src/client/qwaylandinputcontext.cpp +++ b/src/client/qwaylandinputcontext.cpp @@ -387,8 +387,10 @@ void QWaylandTextInput::zwp_text_input_v2_input_method_changed(uint32_t serial, Qt::KeyboardModifiers QWaylandTextInput::modifiersToQtModifiers(uint32_t modifiers) { Qt::KeyboardModifiers ret = Qt::NoModifier; - for (int i = 0; modifiers >>= 1; ++i) { - ret |= m_modifiersMap[i]; + for (int i = 0; i < m_modifiersMap.size(); ++i) { + if (modifiers & (1 << i)) { + ret |= m_modifiersMap[i]; + } } return ret; } |