diff options
author | Tomas Frydrych <tf@linux.intel.com> | 2009-05-05 09:39:29 +0100 |
---|---|---|
committer | Tomas Frydrych <tf@linux.intel.com> | 2009-05-05 09:39:29 +0100 |
commit | 2a8c160569c146d436bf94ac0babc46e1f21a7e9 (patch) | |
tree | 35bf46094383936d9899e2e676339b36e0285501 | |
parent | 1d5117a607b92003180779d43ef6ca568a9a9d04 (diff) | |
download | mutter-2a8c160569c146d436bf94ac0babc46e1f21a7e9.tar.gz |
MetaScreen::keyboard-grabbed property
gboolean read-only property that tracks the all_keys_grabbed flag of
MetaScreen.
-rw-r--r-- | src/core/keybindings.c | 6 | ||||
-rw-r--r-- | src/core/screen.c | 16 |
2 files changed, 20 insertions, 2 deletions
diff --git a/src/core/keybindings.c b/src/core/keybindings.c index 7de3b8c82..a7c6adead 100644 --- a/src/core/keybindings.c +++ b/src/core/keybindings.c @@ -940,7 +940,10 @@ meta_screen_grab_all_keys (MetaScreen *screen, guint32 timestamp) "Grabbing all keys on RootWindow\n"); retval = grab_keyboard (screen->display, screen->xroot, timestamp); if (retval) - screen->all_keys_grabbed = TRUE; + { + screen->all_keys_grabbed = TRUE; + g_object_notify (G_OBJECT (screen), "keyboard-grabbed"); + } else meta_screen_grab_keys (screen); @@ -959,6 +962,7 @@ meta_screen_ungrab_all_keys (MetaScreen *screen, guint32 timestamp) /* Re-establish our standard bindings */ meta_screen_grab_keys (screen); + g_object_notify (G_OBJECT (screen), "keyboard-grabbed"); } } diff --git a/src/core/screen.c b/src/core/screen.c index 10fc3365d..777bd73b5 100644 --- a/src/core/screen.c +++ b/src/core/screen.c @@ -72,7 +72,8 @@ static void meta_screen_sn_event (SnMonitorEvent *event, enum { - PROP_N_WORKSPACES = 1 + PROP_N_WORKSPACES = 1, + PROP_KEYBOARD_GRABBED, }; enum @@ -118,6 +119,9 @@ meta_screen_get_property (GObject *object, case PROP_N_WORKSPACES: g_value_set_int (value, meta_screen_get_n_workspaces (screen)); break; + case PROP_KEYBOARD_GRABBED: + g_value_set_boolean (value, screen->all_keys_grabbed ? TRUE : FALSE); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; @@ -167,6 +171,16 @@ meta_screen_class_init (MetaScreenClass *klass) g_object_class_install_property (object_class, PROP_N_WORKSPACES, pspec); + + pspec = g_param_spec_boolean ("keyboard-grabbed", + "Keyboard grabbed", + "Whether the keyboard is grabbed", + FALSE, + G_PARAM_READABLE); + + g_object_class_install_property (object_class, + PROP_KEYBOARD_GRABBED, + pspec); } static void |