gnome-settings-daemon r663 - in trunk: . plugins/keybindings



Author: jensg
Date: Thu Jan 15 18:46:36 2009
New Revision: 663
URL: http://svn.gnome.org/viewvc/gnome-settings-daemon?rev=663&view=rev

Log:
2009-01-15  Jens Granseuer  <jensgr gmx net>

	* plugins/keybindings/gsd-keybindings-manager.c:
	(binding_unregister_keys), (gsd_keybindings_manager_stop): also ungrab
	keys when this module is disabled


Modified:
   trunk/ChangeLog
   trunk/plugins/keybindings/gsd-keybindings-manager.c

Modified: trunk/plugins/keybindings/gsd-keybindings-manager.c
==============================================================================
--- trunk/plugins/keybindings/gsd-keybindings-manager.c	(original)
+++ trunk/plugins/keybindings/gsd-keybindings-manager.c	Thu Jan 15 18:46:36 2009
@@ -289,6 +289,28 @@
 }
 
 static void
+binding_unregister_keys (GsdKeybindingsManager *manager)
+{
+        GSList *li;
+        gboolean need_flush = FALSE;
+
+        gdk_error_trap_push ();
+
+        for (li = manager->priv->binding_list; li != NULL; li = li->next) {
+                Binding *binding = (Binding *) li->data;
+
+                if (binding->key.keycodes) {
+                        need_flush = TRUE;
+                        grab_key_unsafe (&binding->key, FALSE, manager->priv->screens);
+                }
+        }
+
+        if (need_flush)
+                gdk_flush ();
+        gdk_error_trap_pop ();
+}
+
+static void
 binding_register_keys (GsdKeybindingsManager *manager)
 {
         GSList *li;
@@ -596,6 +618,9 @@
                                           (GdkFilterFunc) keybindings_filter,
                                           manager);
         }
+
+        binding_unregister_keys (manager);
+
         g_slist_free (p->screens);
         p->screens = NULL;
 



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