summaryrefslogtreecommitdiff
path: root/gdk/gdkkeys.c
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2008-09-29 20:40:45 +0000
committerMatthias Clasen <matthiasc@src.gnome.org>2008-09-29 20:40:45 +0000
commit859aaf903d8e6ad5ca93c3205771edadfc24969c (patch)
tree29c082c6b5a720b5efdf2fdbb46bc65e9221d5d0 /gdk/gdkkeys.c
parent978e780018ebfdbb95521c60dd5ac7b7ae9e8603 (diff)
downloadgtk+-859aaf903d8e6ad5ca93c3205771edadfc24969c.tar.gz
Bug 107000 – Add signals to GdkKeymap for monitoring caps_lock, etc.
2008-09-29 Matthias Clasen <mclasen@redhat.com> Bug 107000 – Add signals to GdkKeymap for monitoring caps_lock, etc. * gdk/gdk.symbols: * gdk/gdkkeys.[ch]: Add a new GdkKeymap::state-changed signal, and a gdk_keymap_get_caps_lock_state function. * gdk/x11/gdkkeys-x11.c: Implement it here. For now, only emit state-changed when caps lock lockedness changes. * gdk/x11/gdkdisplay-x11.c: Also select for modifier lock status changes in the XkbSelectEventDetails call. svn path=/trunk/; revision=21545
Diffstat (limited to 'gdk/gdkkeys.c')
-rw-r--r--gdk/gdkkeys.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/gdk/gdkkeys.c b/gdk/gdkkeys.c
index b01d6398c3..d3e4d1b8f3 100644
--- a/gdk/gdkkeys.c
+++ b/gdk/gdkkeys.c
@@ -33,6 +33,7 @@
enum {
DIRECTION_CHANGED,
KEYS_CHANGED,
+ STATE_CHANGED,
LAST_SIGNAL
};
@@ -81,6 +82,26 @@ gdk_keymap_class_init (GdkKeymapClass *klass)
g_cclosure_marshal_VOID__VOID,
G_TYPE_NONE,
0);
+
+ /**
+ * GdkKeymap::state-changed:
+ * @keymap: the object on which the signal is emitted
+ *
+ * The ::state-changed signal is emitted when the state of the
+ * keyboard changes, e.g when the Caps Lock is turned on or off.
+ * See gdk_keyboard_get_caps_lock_state().
+ *
+ * Since: 2.16
+ */
+ signals[STATE_CHANGED] =
+ g_signal_new ("state_changed",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (GdkKeymapClass, state_changed),
+ NULL, NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE,
+ 0);
}
static void