Updating branch refs/heads/xfce-4.10
         to 9acd5517605cddfa3484b83b8fb119d9c8a032a5 (commit)
       from 8cf0074f0a8ee650fd675d921ac3a298cde1aa39 (commit)

commit 9acd5517605cddfa3484b83b8fb119d9c8a032a5
Author: Jérôme Guelfucci <jero...@xfce.org>
Date:   Tue Dec 18 08:21:03 2012 +0100

    Improve key comparison.
    
    Remove horrible hardcoded hack and use the recommanded way of comparison
    described in the GDK documentation instead.

 libxfce4kbd-private/xfce-shortcuts-grabber.c |   27 ++++---------------------
 1 files changed, 5 insertions(+), 22 deletions(-)

diff --git a/libxfce4kbd-private/xfce-shortcuts-grabber.c 
b/libxfce4kbd-private/xfce-shortcuts-grabber.c
index 9faec07..120cc03 100644
--- a/libxfce4kbd-private/xfce-shortcuts-grabber.c
+++ b/libxfce4kbd-private/xfce-shortcuts-grabber.c
@@ -429,6 +429,7 @@ struct EventKeyFindContext
 {
   XfceShortcutsGrabber *grabber;
   GdkModifierType       modifiers;
+  GdkModifierType       consumed;
   guint                 keyval;
   const gchar          *result;
 };
@@ -440,30 +441,13 @@ find_event_key (const gchar                *shortcut,
                 XfceKey                    *key,
                 struct EventKeyFindContext *context)
 {
-  GdkModifierType ignored;
-
   g_return_val_if_fail (context != NULL, FALSE);
 
   TRACE ("Comparing to %s", shortcut);
 
-  ignored = 0;
-
-  /* Accept MOD1 + META as MOD1 */
-  if (key->modifiers & context->modifiers & GDK_MOD1_MASK)
-    {
-      TRACE ("Ignoring Meta Mask");
-      ignored |= GDK_META_MASK;
-    }
-
-  /* Accept SUPER + HYPER as SUPER */
-  if (key->modifiers & context->modifiers & GDK_SUPER_MASK)
-    {
-      TRACE ("Ignoring Hyper Mask");
-      ignored |= GDK_HYPER_MASK;
-    }
-
-  if ((key->modifiers & ~ignored) == (context->modifiers & ~ignored)
-      && key->keyval == context->keyval)
+  if ((key->modifiers & ~context->consumed & (GDK_CONTROL_MASK | 
GDK_SHIFT_MASK | GDK_MOD1_MASK))
+      == (context->modifiers)
+      && (key->keyval == context->keyval))
     {
       context->result = shortcut;
 
@@ -511,13 +495,12 @@ xfce_shortcuts_grabber_event_filter (GdkXEvent            
*gdk_xevent,
                                        XkbGroupForCoreState 
(xevent->xkey.state),
                                        &keyval, NULL, NULL, &consumed);
 
-  /* Get the modifiers */
   modifiers &= ~consumed;
-  gdk_keymap_add_virtual_modifiers (keymap, &modifiers);
   modifiers &= mod_mask;
 
   context.keyval = keyval;
   context.modifiers = modifiers;
+  context.consumed = consumed;
 
   raw_shortcut_name = gtk_accelerator_name (keyval, modifiers);
   TRACE ("Looking for %s", raw_shortcut_name);
_______________________________________________
Xfce4-commits mailing list
Xfce4-commits@xfce.org
https://mail.xfce.org/mailman/listinfo/xfce4-commits

Reply via email to