[gtk/gbsneto/shortcuts-rebased: 18/19] shortcuttrigger: Filter legacy X11 events out



commit ddab18e9a9b6ae84309844b82a033e960428c24e
Author: Georges Basile Stavracas Neto <georges stavracas gmail com>
Date:   Mon May 13 22:35:16 2019 -0300

    shortcuttrigger: Filter legacy X11 events out
    
    Copying the code from GtkKeyHash, filter out X11 modifiers
    from events. Unfortunately, they can be present even when
    running full Wayland, due to XKB.

 gtk/gtkshortcuttrigger.c | 4 ++++
 1 file changed, 4 insertions(+)
---
diff --git a/gtk/gtkshortcuttrigger.c b/gtk/gtkshortcuttrigger.c
index 43a9e77c1e..f45ad2c219 100644
--- a/gtk/gtkshortcuttrigger.c
+++ b/gtk/gtkshortcuttrigger.c
@@ -499,6 +499,7 @@ gtk_keyval_trigger_trigger (GtkShortcutTrigger *trigger,
                             const GdkEvent     *event,
                             gboolean            enable_mnemonics)
 {
+  const GdkModifierType x11_mods = GDK_MOD2_MASK | GDK_MOD3_MASK | GDK_MOD4_MASK | GDK_MOD5_MASK;
   GtkKeyvalTrigger *self = (GtkKeyvalTrigger *) trigger;
   GdkModifierType modifiers;
   guint keyval;
@@ -515,6 +516,9 @@ gtk_keyval_trigger_trigger (GtkShortcutTrigger *trigger,
   else
     keyval = gdk_keyval_to_lower (keyval);
 
+  /* Filter legacy X11 modifiers out */
+  modifiers &= ~x11_mods;
+
   return keyval == self->keyval && modifiers == self->modifiers;
 }
 


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