ecore-x: add more info to Ecore_X_Event_Xkb event
authorMike Blumenkrantz <zmike@osg.samsung.com>
Wed, 24 Jan 2018 20:58:28 +0000 (15:58 -0500)
committerWonki Kim <wonki_.kim@samsung.com>
Tue, 3 Apr 2018 09:50:06 +0000 (18:50 +0900)
this event corresponds to xkb state changes which are useful when working
with xkb instances

@feature

src/lib/ecore_x/Ecore_X.h
src/lib/ecore_x/ecore_x_events.c

index 3a6afa1..b095555 100644 (file)
@@ -2494,8 +2494,16 @@ typedef struct _Ecore_X_Event_Damage Ecore_X_Event_Damage;
 struct _Ecore_X_Event_Xkb
 {
    int group;
+   int base_group; /** @since 1.21 */
+   int latched_group; /** @since 1.21 */
+   int locked_group; /** @since 1.21 */
+   unsigned int        mods; /** @since 1.21 */
+   unsigned int base_mods; /** @since 1.21 */
+   unsigned int        latched_mods; /** @since 1.21 */
+   unsigned int        locked_mods; /** @since 1.21 */
 };
 typedef struct _Ecore_X_Event_Xkb Ecore_X_Event_Xkb; /** @since 1.7 */
+typedef struct _Ecore_X_Event_Xkb Ecore_X_Xkb_State; /** @since 1.21 */
 
 EAPI Eina_Bool      ecore_x_damage_query(void);
 EAPI Ecore_X_Damage ecore_x_damage_new(Ecore_X_Drawable d, Ecore_X_Damage_Report_Level level);
index 11d0988..51bf491 100644 (file)
@@ -2656,6 +2656,14 @@ _ecore_x_event_handle_xkb(XEvent *xevent)
           return;
 
         e->group = xkbev->state.group;
+        e->base_group = xkbev->state.base_group;
+        e->latched_group = xkbev->state.latched_group;
+        e->locked_group = xkbev->state.locked_group;
+
+        e->mods = xkbev->state.mods;
+        e->base_mods = xkbev->state.base_mods;
+        e->latched_mods = xkbev->state.latched_mods;
+        e->locked_mods = xkbev->state.locked_mods;
         ecore_event_add(ECORE_X_EVENT_XKB_STATE_NOTIFY, e, free_hash, NULL);
         eina_hash_add(emitted_events, &xkbev->state.serial, (void*) 1);
      }