[mutter] clutter/evdev: Add API to get current layout index



commit 5685449e15ffa401485547cbdcf58e96d3b045f2
Author: Jonas Ådahl <jadahl gmail com>
Date:   Thu Aug 17 16:17:45 2017 +0800

    clutter/evdev: Add API to get current layout index
    
    We set the layout index when changing keyboard layout, but have no way
    to get it back would so be needed. Add that.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=786408

 .../clutter/evdev/clutter-device-manager-evdev.c   |   15 +++++++++++++++
 clutter/clutter/evdev/clutter-evdev.h              |    3 +++
 2 files changed, 18 insertions(+), 0 deletions(-)
---
diff --git a/clutter/clutter/evdev/clutter-device-manager-evdev.c 
b/clutter/clutter/evdev/clutter-device-manager-evdev.c
index c3fdc90..479f869 100644
--- a/clutter/clutter/evdev/clutter-device-manager-evdev.c
+++ b/clutter/clutter/evdev/clutter-device-manager-evdev.c
@@ -2603,6 +2603,21 @@ clutter_evdev_set_keyboard_layout_index (ClutterDeviceManager *evdev,
 }
 
 /**
+ * clutter_evdev_get_keyboard_layout_index: (skip)
+ */
+xkb_layout_index_t
+clutter_evdev_get_keyboard_layout_index (ClutterDeviceManager *evdev)
+{
+  ClutterDeviceManagerEvdev *manager_evdev;
+  struct xkb_state *state;
+
+  manager_evdev = CLUTTER_DEVICE_MANAGER_EVDEV (evdev);
+  state = manager_evdev->priv->main_seat->xkb;
+
+  return xkb_state_serialize_layout (state, XKB_STATE_LAYOUT_LOCKED);
+}
+
+/**
  * clutter_evdev_set_keyboard_numlock: (skip)
  * @evdev: the #ClutterDeviceManager created by the evdev backend
  * @numlock_set: TRUE to set NumLock ON, FALSE otherwise.
diff --git a/clutter/clutter/evdev/clutter-evdev.h b/clutter/clutter/evdev/clutter-evdev.h
index b64b136..be7f09c 100644
--- a/clutter/clutter/evdev/clutter-evdev.h
+++ b/clutter/clutter/evdev/clutter-evdev.h
@@ -120,6 +120,9 @@ CLUTTER_AVAILABLE_IN_1_20
 void clutter_evdev_set_keyboard_layout_index (ClutterDeviceManager *evdev,
                                               xkb_layout_index_t    idx);
 
+CLUTTER_AVAILABLE_IN_MUTTER
+xkb_layout_index_t clutter_evdev_get_keyboard_layout_index (ClutterDeviceManager *evdev);
+
 CLUTTER_AVAILABLE_IN_1_26
 void clutter_evdev_set_keyboard_numlock (ClutterDeviceManager *evdev,
                                          gboolean              numlock_state);


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