ecore-x: add more info to Ecore_X_Event_Xkb event

this event corresponds to xkb state changes which are useful when working
with xkb instances

@feature
This commit is contained in:
Mike Blumenkrantz 2018-01-24 15:58:28 -05:00
parent 10fc36614f
commit 4b38020f89
2 changed files with 16 additions and 0 deletions

View 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);

View 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);
}