discomfitor pushed a commit to branch enlightenment-0.20.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=39717a8a388d4878f88332a76f40ec91c38661d1

commit 39717a8a388d4878f88332a76f40ec91c38661d1
Author: Mike Blumenkrantz <zm...@osg.samsung.com>
Date:   Thu Mar 24 13:57:23 2016 -0400

    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
---
 src/bin/e_client.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/src/bin/e_client.c b/src/bin/e_client.c
index 1794376..91f3ba9 100644
--- a/src/bin/e_client.c
+++ b/src/bin/e_client.c
@@ -2869,6 +2869,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)))

-- 


Reply via email to