File gnome-control-center-shortcut-assignment-fixes.patch of Package gnome-control-center

From 8560cf39a214d973e24667fcc82a192fd18251c4 Mon Sep 17 00:00:00 2001
From: Bastien Nocera <hadess@hadess.net>
Date: Mon, 16 Jul 2012 16:03:36 +0000
Subject: shell: Fix not being able to assign Ctrl+Q to a shortcut

Because the shell window was capturing it before the key editing
cell had a change to get to it.

s/g_signal_connect/g_signal_connect_after/

https://bugzilla.gnome.org/show_bug.cgi?id=671448
---
diff --git a/shell/gnome-control-center.c b/shell/gnome-control-center.c
index b1c66b3..d046033 100644
--- a/shell/gnome-control-center.c
+++ b/shell/gnome-control-center.c
@@ -1115,8 +1115,8 @@ gnome_control_center_init (GnomeControlCenter *self)
   /* connect various signals */
   priv->window = W (priv->builder, "main-window");
   g_signal_connect_swapped (priv->window, "delete-event", G_CALLBACK (g_object_unref), self);
-  g_signal_connect (priv->window, "key_press_event",
-                    G_CALLBACK (window_key_press_event), self);
+  g_signal_connect_after (priv->window, "key_press_event",
+                          G_CALLBACK (window_key_press_event), self);
 
   priv->notebook = W (priv->builder, "notebook");
   priv->scrolled_window = W (priv->builder, "scrolledwindow1");
--
cgit v0.9.0.2

From e5bfcb23d31310e73dc73c2af5a6230e772d115f Mon Sep 17 00:00:00 2001
From: Bastien Nocera <hadess@hadess.net>
Date: Mon, 16 Jul 2012 17:05:04 +0000
Subject: shell: Don't handle shortcuts with excess modifiers

Ctrl+Alt+W shouldn't be handled the same way as Ctrl+W.

https://bugzilla.gnome.org/show_bug.cgi?id=675475
---
diff --git a/shell/gnome-control-center.c b/shell/gnome-control-center.c
index d046033..195a0a1 100644
--- a/shell/gnome-control-center.c
+++ b/shell/gnome-control-center.c
@@ -1058,12 +1058,20 @@ window_key_press_event (GtkWidget          *win,
 			GdkEventKey        *event,
 			GnomeControlCenter *self)
 {
+  GdkKeymap *keymap;
   gboolean retval;
+  GdkModifierType state;
+
+  if (event->state == 0)
+    return FALSE;
 
   retval = FALSE;
+  state = event->state;
+  keymap = gdk_keymap_get_default ();
+  gdk_keymap_add_virtual_modifiers (keymap, &state);
+  state = state & gtk_accelerator_get_default_mod_mask ();
 
-  if (event->state != 0 &&
-      (event->state & GDK_CONTROL_MASK))
+  if (state == GDK_CONTROL_MASK)
     {
       switch (event->keyval)
         {
--
cgit v0.9.0.2
openSUSE Build Service is sponsored by