From 984a1facd9928fc20a0f14f042cfb0c9a978ae38 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Fri, 6 Oct 2017 11:37:50 -0400 Subject: [PATCH] pass keys through xkbcommon under wayland lockscreen ensure that key states are retained when unlocking --- src/bin/e_comp_canvas.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/bin/e_comp_canvas.c b/src/bin/e_comp_canvas.c index 97d6234fb..fab4cad5a 100644 --- a/src/bin/e_comp_canvas.c +++ b/src/bin/e_comp_canvas.c @@ -112,7 +112,13 @@ _key_down(int ctx, Ecore_Event_Key *ev) { E_Desklock_Interface *iface = e_desklock_interface_current_get(); if (iface && iface->key_down) - return iface->key_down(ev); + { +#ifdef HAVE_WAYLAND + if (e_comp->comp_type == E_PIXMAP_TYPE_WL) + e_comp_wl_key_up(ev, NULL); +#endif + return iface->key_down(ev); + } } if ((e_comp->comp_type == E_PIXMAP_TYPE_X) && (ev->event_window != e_comp->root)) { @@ -156,7 +162,13 @@ _key_up(int ctx, Ecore_Event_Key *ev) { E_Desklock_Interface *iface = e_desklock_interface_current_get(); if (iface && iface->key_up) - return iface->key_up(ev); + { +#ifdef HAVE_WAYLAND + if (e_comp->comp_type == E_PIXMAP_TYPE_WL) + e_comp_wl_key_up(ev, NULL); +#endif + return iface->key_up(ev); + } } if ((e_comp->comp_type == E_PIXMAP_TYPE_X) && (ev->event_window != e_comp->root)) return ECORE_CALLBACK_PASS_ON; return ((!e_comp->screen) ||