add generic handling for passing xkb objects to efl-wl objects under wayland
ensure that keymaps are effectively propagated to efl-wl clients and that key presses are always propagated
This commit is contained in:
parent
39c9ae8b73
commit
9a484d1b64
|
@ -285,6 +285,8 @@ struct _E_Comp_Wl_Data
|
|||
E_Client *drag_client;
|
||||
void *drag_source;
|
||||
|
||||
Eina_List *efl_wls;
|
||||
|
||||
Eina_Bool dmabuf_disable E_BITFIELD;
|
||||
Eina_Bool dmabuf_proxy E_BITFIELD;
|
||||
};
|
||||
|
|
|
@ -388,6 +388,16 @@ _e_comp_wl_input_state_update(void)
|
|||
0, 0);
|
||||
}
|
||||
|
||||
static void
|
||||
nested_keymap_update(void)
|
||||
{
|
||||
Eina_List *l;
|
||||
Evas_Object *obj;
|
||||
|
||||
EINA_LIST_FOREACH(e_comp_wl->efl_wls, l, obj)
|
||||
efl_wl_seat_keymap_set(obj, NULL, e_comp_wl->xkb.state, e_comp_wl->xkb.fd, e_comp_wl->xkb.size, &e_comp_wl->kbd.keys);
|
||||
}
|
||||
|
||||
static void
|
||||
_e_comp_wl_input_keymap_update(struct xkb_keymap *keymap)
|
||||
{
|
||||
|
@ -447,6 +457,7 @@ _e_comp_wl_input_keymap_update(struct xkb_keymap *keymap)
|
|||
|
||||
/* update modifiers */
|
||||
e_comp_wl_input_keyboard_modifiers_update();
|
||||
nested_keymap_update();
|
||||
}
|
||||
|
||||
EINTERN Eina_Bool
|
||||
|
@ -715,7 +726,7 @@ e_comp_wl_input_keymap_index_set(xkb_layout_index_t index)
|
|||
e_comp_wl->kbd.choosen_group = index;
|
||||
_e_comp_wl_input_state_update();
|
||||
e_comp_wl_input_keyboard_modifiers_update();
|
||||
|
||||
nested_keymap_update();
|
||||
}
|
||||
else
|
||||
choosen_group = index;
|
||||
|
|
Loading…
Reference in New Issue