From af230fc7f63ad82b9c3ec3165c0f3773e3a6a54e Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Tue, 28 Jul 2015 16:46:00 -0400 Subject: [PATCH] disable ecore-evas events on client windows during actions this is a not-great way of hacking around various issues related to the efl mouse button cancel patches that went in for the 1.15 cycle which changed the entire mouse input workings of the toolkit. to avoid further issues, the compositor will explicitly block eventing on all internal canvases during actions --- src/bin/e_client.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/bin/e_client.c b/src/bin/e_client.c index 3eb94b890..28f285ad4 100644 --- a/src/bin/e_client.c +++ b/src/bin/e_client.c @@ -403,6 +403,11 @@ _e_client_action_finish(void) E_FREE_FUNC(action_timer, ecore_timer_del); E_FREE_FUNC(action_handler_key, ecore_event_handler_del); E_FREE_FUNC(action_handler_mouse, ecore_event_handler_del); + if (action_client) + { + if (action_client->internal_elm_win) + ecore_event_window_ignore_events(elm_win_window_id_get(action_client->internal_elm_win), 0); + } action_client = NULL; } @@ -731,7 +736,14 @@ _e_client_action_init(E_Client *ec) action_orig.w = ec->w; action_orig.h = ec->h; + if (action_client) + { + if (action_client->internal_elm_win) + ecore_event_window_ignore_events(elm_win_window_id_get(action_client->internal_elm_win), 0); + } action_client = ec; + if (ec->internal_elm_win) + ecore_event_window_ignore_events(elm_win_window_id_get(ec->internal_elm_win), 1); } static void