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:
committed by
Matthias Clasen
parent
2ace9aef5f
commit
1787bf5471
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user