Blame SOURCES/0034-Fix-the-logic-for-decoding-modifiers-map-in-Wayland-.patch

f8c1a9
From 02f9585ca19c17ae0978b864195533dc527d825e Mon Sep 17 00:00:00 2001
f8c1a9
From: Rodney Dawes <dobey.pwns@gmail.com>
f8c1a9
Date: Fri, 15 Oct 2021 12:55:33 -0400
f8c1a9
Subject: [PATCH 34/36] Fix the logic for decoding modifiers map in Wayland
f8c1a9
 text input protocol
f8c1a9
f8c1a9
Correctly check for the flags in the modifiers map when we get it from
f8c1a9
the compositor, instead of modifying the map in the for loop conditional.
f8c1a9
f8c1a9
[ChangeLog][QWaylandInputContext] Fix modifiers map decoding
f8c1a9
logic when receiving the map from the compositor.
f8c1a9
f8c1a9
Fixes: QTBUG-97094
f8c1a9
Pick-to: 6.2 5.15 5.12
f8c1a9
Change-Id: Idad19f7b1f4560d40abbb5b31032360cfe915261
f8c1a9
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
f8c1a9
---
f8c1a9
 src/client/qwaylandinputcontext.cpp | 6 ++++--
f8c1a9
 1 file changed, 4 insertions(+), 2 deletions(-)
f8c1a9
f8c1a9
diff --git a/src/client/qwaylandinputcontext.cpp b/src/client/qwaylandinputcontext.cpp
f8c1a9
index 503fd735..e290baa2 100644
f8c1a9
--- a/src/client/qwaylandinputcontext.cpp
f8c1a9
+++ b/src/client/qwaylandinputcontext.cpp
f8c1a9
@@ -387,8 +387,10 @@ void QWaylandTextInput::zwp_text_input_v2_input_method_changed(uint32_t serial,
f8c1a9
 Qt::KeyboardModifiers QWaylandTextInput::modifiersToQtModifiers(uint32_t modifiers)
f8c1a9
 {
f8c1a9
     Qt::KeyboardModifiers ret = Qt::NoModifier;
f8c1a9
-    for (int i = 0; modifiers >>= 1; ++i) {
f8c1a9
-        ret |= m_modifiersMap[i];
f8c1a9
+    for (int i = 0; i < m_modifiersMap.size(); ++i) {
f8c1a9
+        if (modifiers & (1 << i)) {
f8c1a9
+            ret |= m_modifiersMap[i];
f8c1a9
+        }
f8c1a9
     }
f8c1a9
     return ret;
f8c1a9
 }
f8c1a9
-- 
f8c1a9
2.33.1
f8c1a9