discomfitor pushed a commit to branch master.

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

commit b2c5c20cde89e22797db95b59590a9ecacdbb33b
Author: Mike Blumenkrantz <[email protected]>
Date:   Mon Aug 14 07:27:11 2017 -0400

    manually get client under pointer for checking x11 pointer focus
    
    e_client_under_pointer_get() ignores overrides.
    
    ref 3ee5a0378d2b41313156748ec33202c44c117239
    
    fix T5878, T5871
    
    IF ONLY THERE WERE SOME METHOD FOR TESTING COMMITS BEFORE THEY WERE PUSHED
---
 src/bin/e_comp_x.c | 19 ++++++++++++++++---
 1 file changed, 16 insertions(+), 3 deletions(-)

diff --git a/src/bin/e_comp_x.c b/src/bin/e_comp_x.c
index c9bf7fe7c..b907462d5 100644
--- a/src/bin/e_comp_x.c
+++ b/src/bin/e_comp_x.c
@@ -2382,11 +2382,24 @@ _e_comp_x_mouse_in_job(void *d EINA_UNUSED)
 static Eina_Bool
 _e_comp_x_mouse_in_fix_check_timer_cb(void *data EINA_UNUSED)
 {
-   E_Client *ec;
+   E_Client *ec = NULL, *cec;
+   int x, y;
 
    mouse_in_fix_check_timer = NULL;
-   ec = e_client_under_pointer_get
-     (e_desk_current_get(e_zone_current_get()), NULL);
+   ecore_evas_pointer_xy_get(e_comp->ee, &x, &y);
+   E_CLIENT_REVERSE_FOREACH(cec)
+     {
+        /* If a border was specified which should be excluded from the list
+         * (because it will be closed shortly for example), skip */
+        if ((!e_client_util_desk_visible(cec, 
e_desk_current_get(e_zone_current_get())))) continue;
+        if (!evas_object_visible_get(cec->frame)) continue;
+        if (!E_INSIDE(x, y, cec->x, cec->y, cec->w, cec->h))
+          continue;
+        /* If the layer is higher, the position of the window is higher
+         * (always on top vs always below) */
+        if (!ec || (cec->layer > ec->layer))
+          ec = cec;
+     }
    if (ec)
      {
         mouse_client = ec;

-- 


Reply via email to