summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Blumenkrantz <zmike@osg.samsung.com>2016-03-24 13:57:23 -0400
committerMike Blumenkrantz <zmike@osg.samsung.com>2016-03-24 14:03:36 -0400
commit893f3b166944f3a27a4e22d5d17a779e6f2bb99e (patch)
treed36d686e9e425f32dc62918f168a03459e7114a8
parent18a9c2d97d55887e6df54608417ce56519476957 (diff)
downloadenlightenment-893f3b166944f3a27a4e22d5d17a779e6f2bb99e.tar.gz
feed mouse-up events for all buttons on internal wins when activating a binding
bindings enforce compositor grabs, which will result in stuck canvas buttons and break internal windows which have already received button presses fix T3347
-rw-r--r--src/bin/e_client.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/bin/e_client.c b/src/bin/e_client.c
index 1e125b2d63..37d823e32f 100644
--- a/src/bin/e_client.c
+++ b/src/bin/e_client.c
@@ -2897,6 +2897,19 @@ e_client_mouse_down(E_Client *ec, int button, Evas_Point *output, E_Binding_Even
{
did_act = EINA_TRUE;
e_object_ref(E_OBJECT(ec->cur_mouse_action));
+ if (ec->internal)
+ {
+ int button_mask, i;
+ Evas *e;
+
+ e = evas_object_evas_get(ec->internal_elm_win);
+ button_mask = evas_pointer_button_down_mask_get(e);
+ for (i = 0; i < 32; i++)
+ {
+ if ((button_mask & (1 << i)))
+ evas_event_feed_mouse_up(e, i + 1, EVAS_BUTTON_NONE, 0, NULL);
+ }
+ }
}
}
if ((!did_act) || (((pfocus == e_client_focused_get()) || (ec == e_client_focused_get())) && (ec->layer >= player)))