discomfitor pushed a commit to branch enlightenment-0.21.

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

commit dc3e88238352942069870f8b3d0ff58f8d7a6522
Author: Mike Blumenkrantz <[email protected]>
Date:   Fri Mar 3 11:56:16 2017 -0500

    defer menu activation mouse-up feed
    
    ensure that this is not triggered from an evas post event callback
    
    ref T3144
---
 src/bin/e_menu.c | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/src/bin/e_menu.c b/src/bin/e_menu.c
index cf686ca..4792067 100644
--- a/src/bin/e_menu.c
+++ b/src/bin/e_menu.c
@@ -103,6 +103,9 @@ static int _e_menu_autoscroll_y = 0;
 static Eina_List *handlers = NULL;
 static Eina_Bool _e_menu_lock = EINA_FALSE;
 
+static Eina_Bool pending_feed;
+static unsigned int pending_activate_time;
+
 static Eina_List *
 _e_active_menus_copy_ref(void)
 {
@@ -346,7 +349,8 @@ e_menu_activate_mouse(E_Menu *m, E_Zone *zone, int x, int 
y, int w, int h, int d
      }
    pmi = _e_menu_item_active_get();
    if (pmi) e_menu_item_active_set(pmi, 0);
-   e_comp_canvas_feed_mouse_up(activate_time);
+   pending_feed = 1;
+   pending_activate_time = activate_time;
 }
 
 E_API void
@@ -1087,6 +1091,12 @@ e_menu_idler_before(void)
    Eina_List *l, *removals = NULL, *tmp;
    E_Menu *m;
 
+   if (pending_feed)
+     {
+        e_comp_canvas_feed_mouse_up(pending_activate_time);
+        pending_feed = 0;
+     }
+
    /* add refcount to all menus we will work with */
    tmp = _e_active_menus_copy_ref();
    /* phase 1. hide all the menus that want to be hidden */

-- 


Reply via email to