summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRodney Dawes <dobey.pwns@gmail.com>2021-10-04 16:31:30 -0400
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2021-10-15 15:38:29 +0000
commit190646bcf0ae20174f32a240a81c9830dedd3c9b (patch)
tree1af9a8824f2bcfc8ef976026b32b52179865d9d0
parentcea9158fbb5b92991a8507761c3680f51664294c (diff)
Fix the logic for decoding modifiers map in Wayland text input protocolv5.12.125.12
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.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/client/qwaylandinputcontext.cpp b/src/client/qwaylandinputcontext.cpp
index e85faaf8e..8ece14a18 100644
--- a/src/client/qwaylandinputcontext.cpp
+++ b/src/client/qwaylandinputcontext.cpp
@@ -375,8 +375,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;
}