gnome-settings-daemon r383 - in trunk: . plugins/common



Author: jensg
Date: Fri Jun 20 16:46:59 2008
New Revision: 383
URL: http://svn.gnome.org/viewvc/gnome-settings-daemon?rev=383&view=rev

Log:
2008-06-20  Jens Granseuer  <jensgr gmx net>

	* plugins/common/gsd-keygrab.c: (match_key): fix accel check so
	that we don't match e.g. XF86RaiseVolume if <Alt> + XF86RaiseVolume
	was pressed (bug #538699). Also fix build without XKB


Modified:
   trunk/ChangeLog
   trunk/plugins/common/gsd-keygrab.c

Modified: trunk/plugins/common/gsd-keygrab.c
==============================================================================
--- trunk/plugins/common/gsd-keygrab.c	(original)
+++ trunk/plugins/common/gsd-keygrab.c	Fri Jun 20 16:46:59 2008
@@ -153,7 +153,6 @@
 gboolean
 match_key (Key *key, XEvent *event)
 {
-	GdkKeymap *keymap;
 	guint keyval;
 	GdkModifierType consumed;
 	gint group;
@@ -161,13 +160,15 @@
 	if (key == NULL)
 		return FALSE;
 
-	keymap = gdk_keymap_get_default ();
+#ifdef HAVE_X11_EXTENSIONS_XKB_H
 	if (have_xkb (event->xkey.display))
 		group = XkbGroupForCoreState (event->xkey.state);
 	else
+#endif
 		group = (event->xkey.state & GDK_Mode_switch) ? 1 : 0;
+
 	/* Check if we find a keysym that matches our current state */
-	if (gdk_keymap_translate_keyboard_state (keymap, event->xkey.keycode,
+	if (gdk_keymap_translate_keyboard_state (NULL, event->xkey.keycode,
 					     event->xkey.state, group,
 					     &keyval, NULL, NULL, &consumed)) {
 		guint lower, upper;
@@ -180,7 +181,7 @@
 			consumed &= ~GDK_SHIFT_MASK;
 
 		return ((lower == key->keysym || upper == key->keysym)
-			&& (key->state & ~consumed & GSD_USED_MODS) == key->state);
+			&& (event->xkey.state & ~consumed & GSD_USED_MODS) == key->state);
 	}
 
 	/* The key we passed doesn't have a keysym, so try with just the keycode */



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