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;
|
E_Client *drag_client;
|
||||||
void *drag_source;
|
void *drag_source;
|
||||||
|
|
||||||
|
Eina_List *efl_wls;
|
||||||
|
|
||||||
Eina_Bool dmabuf_disable E_BITFIELD;
|
Eina_Bool dmabuf_disable E_BITFIELD;
|
||||||
Eina_Bool dmabuf_proxy E_BITFIELD;
|
Eina_Bool dmabuf_proxy E_BITFIELD;
|
||||||
};
|
};
|
||||||
|
|
|
@ -388,6 +388,16 @@ _e_comp_wl_input_state_update(void)
|
||||||
0, 0);
|
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
|
static void
|
||||||
_e_comp_wl_input_keymap_update(struct xkb_keymap *keymap)
|
_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 */
|
/* update modifiers */
|
||||||
e_comp_wl_input_keyboard_modifiers_update();
|
e_comp_wl_input_keyboard_modifiers_update();
|
||||||
|
nested_keymap_update();
|
||||||
}
|
}
|
||||||
|
|
||||||
EINTERN Eina_Bool
|
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->kbd.choosen_group = index;
|
||||||
_e_comp_wl_input_state_update();
|
_e_comp_wl_input_state_update();
|
||||||
e_comp_wl_input_keyboard_modifiers_update();
|
e_comp_wl_input_keyboard_modifiers_update();
|
||||||
|
nested_keymap_update();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
choosen_group = index;
|
choosen_group = index;
|
||||||
|
|
Loading…
Reference in New Issue