diff --git a/ChangeLog b/ChangeLog index 1b66aeba3..fff77d86c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2009-02-16 Sven Neumann + + * gdk/gdk.symbols + * gdk/directfb/gdkkeys-directfb.c: implement + gdk_keymap_get_caps_lock_state(). No "state-changed" signal yet. + 2009-02-16 Tor Lillqvist Bug 571873 - Compile error with gdk/win32/gdkselection-win32.c diff --git a/gdk/directfb/gdkkeys-directfb.c b/gdk/directfb/gdkkeys-directfb.c index e87b67834..34cb4c4a6 100644 --- a/gdk/directfb/gdkkeys-directfb.c +++ b/gdk/directfb/gdkkeys-directfb.c @@ -1715,7 +1715,7 @@ _gdk_directfb_keyboard_exit (void) void gdk_directfb_translate_key_event (DFBWindowEvent *dfb_event, - GdkEventKey *event) + GdkEventKey *event) { gint len; gchar buf[6]; @@ -1753,6 +1753,32 @@ gdk_directfb_translate_key_event (DFBWindowEvent *dfb_event, event->length = len; } +/** + * gdk_keymap_get_caps_lock_state: + * @keymap: a #GdkKeymap + * + * Returns whether the Caps Lock modifer is locked. + * + * Returns: %TRUE if Caps Lock is on + * + * Since: 2.16 + */ +gboolean +gdk_keymap_get_caps_lock_state (GdkKeymap *keymap) +{ + IDirectFBInputDevice *keyboard = _gdk_display->keyboard; + + if (keyboard) + { + DFBInputDeviceLockState state; + + if (keyboard->GetLockState (keyboard, &state) == DFB_OK) + return ((state & DILS_CAPS) != 0); + } + + return FALSE; +} + /** * gdk_keymap_get_entries_for_keycode: * @keymap: a #GdkKeymap or %NULL to use the default keymap diff --git a/gdk/gdk.symbols b/gdk/gdk.symbols index 71cf0dbc2..cfb54c202 100644 --- a/gdk/gdk.symbols +++ b/gdk/gdk.symbols @@ -846,6 +846,7 @@ gdk_keymap_get_direction gdk_keymap_get_entries_for_keycode gdk_keymap_get_entries_for_keyval gdk_keymap_get_for_display +gdk_keymap_get_caps_lock_state gdk_keymap_lookup_key gdk_keymap_translate_keyboard_state gdk_keyval_from_name