[gtk+] wayland: Update modifiers handling to match new semantics



commit 29641ecd078c279327cbca5a30ca8426089aed5e
Author: Rob Bradford <rob linux intel com>
Date:   Wed Jan 18 16:27:58 2012 +0000

    wayland: Update modifiers handling to match new semantics
    
    Due to changes in the behaviour of the virtual modifiers around MOD1 the
    implementation of the map_virtual_modifiers vfunc was mangling the modifiers
    and making keybindings not work correctly.
    
    This change updates the implementation to match the X11 implementation's
    behaviour.

 gdk/wayland/gdkkeys-wayland.c |    8 +++-----
 1 files changed, 3 insertions(+), 5 deletions(-)
---
diff --git a/gdk/wayland/gdkkeys-wayland.c b/gdk/wayland/gdkkeys-wayland.c
index 55c95e3..d49be2f 100644
--- a/gdk/wayland/gdkkeys-wayland.c
+++ b/gdk/wayland/gdkkeys-wayland.c
@@ -515,12 +515,10 @@ gdk_wayland_keymap_add_virtual_modifiers (GdkKeymap       *keymap,
 
   wayland_keymap = GDK_WAYLAND_KEYMAP (keymap);
 
-  for (i = 3; i < 8; i++)
+  for (i = 4; i < 8; i++)
     {
       if ((1 << i) & *state)
 	{
-	  if (wayland_keymap->modmap[i] & GDK_MOD1_MASK)
-	    *state |= GDK_MOD1_MASK;
 	  if (wayland_keymap->modmap[i] & GDK_SUPER_MASK)
 	    *state |= GDK_SUPER_MASK;
 	  if (wayland_keymap->modmap[i] & GDK_HYPER_MASK)
@@ -540,7 +538,7 @@ gdk_wayland_keymap_map_virtual_modifiers (GdkKeymap       *keymap,
   };
   int i, j;
   GdkWaylandKeymap *wayland_keymap;
-  gboolean retval;
+  gboolean retval = TRUE;
 
   wayland_keymap = GDK_WAYLAND_KEYMAP (keymap);
 
@@ -548,7 +546,7 @@ gdk_wayland_keymap_map_virtual_modifiers (GdkKeymap       *keymap,
     {
       if (*state & vmods[j])
 	{
-	  for (i = 3; i < 8; i++)
+	  for (i = 4; i < 8; i++)
 	    {
 	      if (wayland_keymap->modmap[i] & vmods[j])
 		{



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