discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=9a484d1b64077905e1c6cbae656f8444feedfe33
commit 9a484d1b64077905e1c6cbae656f8444feedfe33 Author: Mike Blumenkrantz <[email protected]> Date: Tue Jan 23 16:51:58 2018 -0500 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 --- src/bin/e_comp_wl.h | 2 ++ src/bin/e_comp_wl_input.c | 13 ++++++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/bin/e_comp_wl.h b/src/bin/e_comp_wl.h index 406a85d97..11bc1ff88 100644 --- a/src/bin/e_comp_wl.h +++ b/src/bin/e_comp_wl.h @@ -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; }; diff --git a/src/bin/e_comp_wl_input.c b/src/bin/e_comp_wl_input.c index e9f1bd385..0874cb170 100644 --- a/src/bin/e_comp_wl_input.c +++ b/src/bin/e_comp_wl_input.c @@ -389,6 +389,16 @@ _e_comp_wl_input_state_update(void) } 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) { char *tmp; @@ -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; --
