discomfitor pushed a commit to branch master.

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

commit 79ea1759926d3bcf8f5fd4ce0cff5c731ac43a02
Author: Mike Blumenkrantz <zm...@osg.samsung.com>
Date:   Mon Jun 29 16:01:52 2015 -0400

    trigger client mouse-in on x11 mouse movement for non-action clients
    
    this should fix the case of mouse-based focus policies trying to reapply
    focus after another client has stolen it away without the pointer leaving
    the window
---
 src/bin/e_comp_x.c | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/src/bin/e_comp_x.c b/src/bin/e_comp_x.c
index 4f1e922..57981cd 100644
--- a/src/bin/e_comp_x.c
+++ b/src/bin/e_comp_x.c
@@ -2227,7 +2227,16 @@ _e_comp_x_mouse_move(void *d EINA_UNUSED, int t 
EINA_UNUSED, Ecore_Event_Mouse_M
    E_Client *ec;
 
    ec = e_client_action_get();
-   if (!ec) return ECORE_CALLBACK_RENEW;
+   if (!ec)
+     {
+        ec = _e_comp_x_client_find_by_window(ev->window);
+        if ((!ec) && (ev->window != ev->event_window))
+          ec = _e_comp_x_client_find_by_window(ev->event_window);
+        if ((!ec) || e_client_util_ignored_get(ec)) return 
ECORE_CALLBACK_RENEW;
+        if (!ec->mouse.in)
+          e_client_mouse_in(ec, e_comp_canvas_x_root_adjust(ev->root.x), 
e_comp_canvas_x_root_adjust(ev->root.y));
+        return ECORE_CALLBACK_RENEW;
+     }
    E_COMP_X_PIXMAP_CHECK ECORE_CALLBACK_RENEW;
    if (_e_comp_x_client_data_get(ec)->deleted || 
e_client_util_ignored_get(ec)) return ECORE_CALLBACK_RENEW;
    if (e_client_util_resizing_get(ec) &&

-- 


Reply via email to