[gnome-settings-daemon/shell-keygrab: 4/5] keygrab: Expose GrabModes in grab_key()



commit c7c715ee073b94074752baed7fe3a59944672f61
Author: Florian MÃllner <fmuellner gnome org>
Date:   Mon Dec 3 00:02:06 2012 +0100

    keygrab: Expose GrabModes in grab_key()

 plugins/common/gsd-keygrab.c                  |   10 ++++++----
 plugins/common/gsd-keygrab.h                  |   13 +++++++++++++
 plugins/keyboard/gsd-input-sources-switcher.c |    2 +-
 plugins/media-keys/gsd-media-keys-manager.c   |    2 +-
 4 files changed, 21 insertions(+), 6 deletions(-)
---
diff --git a/plugins/common/gsd-keygrab.c b/plugins/common/gsd-keygrab.c
index f1fb0ce..ec67063 100644
--- a/plugins/common/gsd-keygrab.c
+++ b/plugins/common/gsd-keygrab.c
@@ -220,6 +220,7 @@ static void
 grab_key_internal (Key             *key,
                    gboolean         grab,
                    GsdKeygrabFlags  flags,
+                   GsdKeygrabModes  modes,
                    GSList          *screens)
 {
 #if 0
@@ -276,13 +277,13 @@ grab_key_internal (Key             *key,
         grab_data = g_new (KeygrabData, 1);
         grab_data->keysym = key->keysym;
         grab_data->modifiers = modifiers;
-        grab_data->modes = grab ? ~0 : 0;
+        grab_data->modes = grab ? modes : 0;
 
         get_key_grabber ();
 
         if (grab)
                 shell_key_grabber_call_grab_key (shell_key_grabber,
-                                                 key->keysym, modifiers, ~0,
+                                                 key->keysym, modifiers, modes,
                                                  NULL,
                                                  grab_key_complete, grab_data);
         else
@@ -344,16 +345,17 @@ grab_key_internal (Key             *key,
 void
 grab_key_unsafe (Key             *key,
                  GsdKeygrabFlags  flags,
+                 GsdKeygrabModes  modes,
                  GSList          *screens)
 {
-        grab_key_internal (key, TRUE, flags, screens);
+        grab_key_internal (key, TRUE, flags, modes, screens);
 }
 
 void
 ungrab_key_unsafe (Key    *key,
                    GSList *screens)
 {
-        grab_key_internal (key, FALSE, 0, screens);
+        grab_key_internal (key, FALSE, 0, 0, screens);
 }
 
 static gboolean
diff --git a/plugins/common/gsd-keygrab.h b/plugins/common/gsd-keygrab.h
index eaba236..345d892 100644
--- a/plugins/common/gsd-keygrab.h
+++ b/plugins/common/gsd-keygrab.h
@@ -40,8 +40,21 @@ typedef enum {
         GSD_KEYGRAB_SYNCHRONOUS      = 1 << 1
 } GsdKeygrabFlags;
 
+typedef enum {
+        GSD_KEYGRAB_MODE_NONE          = 0,
+        GSD_KEYGRAB_MODE_NORMAL        = 1 << 0,
+        GSD_KEYGRAB_MODE_OVERVIEW      = 1 << 1,
+        GSD_KEYGRAB_MODE_LOCK_SCREEN   = 1 << 2,
+        GSD_KEYGRAB_MODE_UNLOCK_SCREEN = 1 << 3,
+        GSD_KEYGRAB_MODE_LOGIN_SCREEN  = 1 << 4,
+        GSD_KEYGRAB_MODE_MESSAGE_TRAY  = 1 << 5,
+        GSD_KEYGRAB_MODE_SYSTEM_MODAL  = 1 << 6,
+        GSD_KEYGRAB_MODE_LOOKING_GLASS = 1 << 7
+} GsdKeygrabModes;
+
 void	        grab_key_unsafe	(Key     *key,
 				 GsdKeygrabFlags flags,
+                                 GsdKeygrabModes modes,
 			         GSList  *screens);
 
 void            ungrab_key_unsafe (Key     *key,
diff --git a/plugins/keyboard/gsd-input-sources-switcher.c b/plugins/keyboard/gsd-input-sources-switcher.c
index cff2359..ec4bffe 100644
--- a/plugins/keyboard/gsd-input-sources-switcher.c
+++ b/plugins/keyboard/gsd-input-sources-switcher.c
@@ -517,7 +517,7 @@ grab_key (Key        *key,
 
   gdk_x11_display_error_trap_push (display);
 
-  grab_key_unsafe (key, GSD_KEYGRAB_ALLOW_UNMODIFIED | GSD_KEYGRAB_SYNCHRONOUS, screens);
+  grab_key_unsafe (key, GSD_KEYGRAB_ALLOW_UNMODIFIED | GSD_KEYGRAB_SYNCHRONOUS, ~0, screens);
 
   gdk_x11_display_error_trap_pop_ignored (display);
 
diff --git a/plugins/media-keys/gsd-media-keys-manager.c b/plugins/media-keys/gsd-media-keys-manager.c
index 663f64f..f95d118 100644
--- a/plugins/media-keys/gsd-media-keys-manager.c
+++ b/plugins/media-keys/gsd-media-keys-manager.c
@@ -411,7 +411,7 @@ grab_media_key (MediaKey            *key,
 		return need_flush;
 	}
 
-	grab_key_unsafe (key->key, GSD_KEYGRAB_NORMAL, manager->priv->screens);
+	grab_key_unsafe (key->key, GSD_KEYGRAB_NORMAL, ~0, manager->priv->screens);
 
 	g_free (tmp);
 



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