shortcuttrigger: Filter a few modifiers out

Copying the code from GtkKeyHash, filter out X11 modifiers and
Caps Lock from events. Unfortunately, legacy X11 modifiers can
be present even when running full Wayland, due to XKB.
This commit is contained in:
Georges Basile Stavracas Neto
2019-05-13 22:35:16 -03:00
committed by Matthias Clasen
parent 2ace9aef5f
commit 1787bf5471

View File

@@ -499,6 +499,7 @@ gtk_keyval_trigger_trigger (GtkShortcutTrigger *trigger,
const GdkEvent *event,
gboolean enable_mnemonics)
{
const GdkModifierType legacy_x11_modifiers = 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 and Caps lock out */
modifiers &= ~(legacy_x11_modifiers | GDK_LOCK_MASK);
return keyval == self->keyval && modifiers == self->modifiers;
}