From dae4bd6576da48e2cda036b27600709afa734bcc Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Mon, 19 Jun 2017 15:26:09 -0400 Subject: [PATCH] feed mouse-up to action client from event grabber, then attempt to end actions signal actions don't pass through the same init methods as other actions, and so it becomes possible for the mouse-up to fail to terminate the action --- src/bin/e_client.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/bin/e_client.c b/src/bin/e_client.c index 4f044efed..bc6a5eba7 100644 --- a/src/bin/e_client.c +++ b/src/bin/e_client.c @@ -750,8 +750,18 @@ _e_client_action_input_win_new(void) static void _e_client_action_event_grabber_mouse_up(void *data EINA_UNUSED, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { - if (action_client && action_client->moving) + Evas_Event_Mouse_Down *ev = event_info; + E_Binding_Event_Mouse_Button ev2; + + if (!action_client) return; + e_bindings_evas_event_mouse_button_convert(ev, &ev2); + e_client_mouse_up(action_client, ev->button, &ev->output, &ev2); + if (!action_client) return; + if (action_client->moving) e_client_act_move_end(action_client, NULL); + if (!action_client) return; + if (e_client_util_resizing_get(action_client)) + e_client_act_resize_end(action_client, NULL); } static void