diff --git a/libxfce4kbd-private/xfce-shortcuts-grabber.c b/libxfce4kbd-private/xfce-shortcuts-grabber.c index 211b606..4b76ae7 100644 --- a/libxfce4kbd-private/xfce-shortcuts-grabber.c +++ b/libxfce4kbd-private/xfce-shortcuts-grabber.c @@ -373,7 +373,7 @@ find_event_key (const gchar *shortcut, TRACE ("Comparing to %s", shortcut); - if ((key->modifiers & (GDK_CONTROL_MASK | GDK_SHIFT_MASK | GDK_MOD1_MASK)) + if ((key->modifiers & (GDK_CONTROL_MASK | GDK_SHIFT_MASK | GDK_MOD1_MASK | GDK_SUPER_MASK)) == (context->modifiers) && (key->keyval == context->keyval)) { @@ -439,6 +439,13 @@ xfce_shortcuts_grabber_event_filter (GdkXEvent *gdk_xevent, if ((modifiers & GDK_SHIFT_MASK) && (consumed & GDK_SHIFT_MASK)) consumed &= ~GDK_SHIFT_MASK; + if ((modifiers & GDK_MOD4_MASK)) { + modifiers &= ~GDK_MOD4_MASK; + modifiers |= GDK_SUPER_MASK; + consumed &= ~GDK_MOD4_MASK; + consumed &= ~GDK_SUPER_MASK; + } + modifiers &= ~consumed; modifiers &= mod_mask;