[gtk+] gdk/wayland: Always get the seat's key modifiers from the GdkKeymap



commit 7a1b30f16e0fd94697c505e620a741c22600d8f7
Author: Rui Matos <tiagomatos gmail com>
Date:   Wed Jan 11 19:12:12 2017 +0100

    gdk/wayland: Always get the seat's key modifiers from the GdkKeymap
    
    Elsewhere we already go through the keymap to get modifiers so we
    should do the same here. In fact, this was relying on xkb modifier
    mask values being bitwise compatible with GdkModifierType which isn't
    necessarily true.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=770112

 gdk/wayland/gdkdevice-wayland.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)
---
diff --git a/gdk/wayland/gdkdevice-wayland.c b/gdk/wayland/gdkdevice-wayland.c
index 45483af..4e605bd 100644
--- a/gdk/wayland/gdkdevice-wayland.c
+++ b/gdk/wayland/gdkdevice-wayland.c
@@ -2233,10 +2233,11 @@ keyboard_handle_modifiers (void               *data,
   keymap = seat->keymap;
   direction = gdk_keymap_get_direction (keymap);
   xkb_state = _gdk_wayland_keymap_get_xkb_state (keymap);
-  seat->key_modifiers = mods_depressed | mods_latched | mods_locked;
 
   xkb_state_update_mask (xkb_state, mods_depressed, mods_latched, mods_locked, group, 0, 0);
 
+  seat->key_modifiers = gdk_keymap_get_modifier_state (keymap);
+
   g_signal_emit_by_name (keymap, "state-changed");
   if (direction != gdk_keymap_get_direction (keymap))
     g_signal_emit_by_name (keymap, "direction-changed");


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]