41 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| From 132be08e4d81c1e05b93f31a6e2b6a6bd65d5726 Mon Sep 17 00:00:00 2001
 | |
| From: Rodney Dawes <dobey.pwns@gmail.com>
 | |
| Date: Fri, 15 Oct 2021 12:55:33 -0400
 | |
| Subject: [PATCH 15/38] 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
 | |
| Pick-to: 6.2 5.15 5.12
 | |
| Change-Id: Idad19f7b1f4560d40abbb5b31032360cfe915261
 | |
| Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
 | |
| ---
 | |
|  src/client/qwaylandinputcontext.cpp | 6 ++++--
 | |
|  1 file changed, 4 insertions(+), 2 deletions(-)
 | |
| 
 | |
| diff --git a/src/client/qwaylandinputcontext.cpp b/src/client/qwaylandinputcontext.cpp
 | |
| index 503fd735..e290baa2 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;
 | |
|  }
 | |
| -- 
 | |
| 2.36.1
 | |
| 
 |