discomfitor pushed a commit to branch master.


commit c2ecadae14920f9c3fd8de6723bcfb010d8b2baf
Author: Mike Blumenkrantz <zm...@osg.samsung.com>
Date:   Mon Jul 27 13:25:01 2015 -0400

    reject x11 NotifyVirtual and NotifyInferior mouse in events
    these are triggered "in passing" when mouse in events occur and do
    not necessarily indicate that the mouse has entered this specific window
    failing to reject such events can cause mouse-based focus policies to
    attempt to set focus onto windows which are not visible, resulting in
    an infinite loop where no window is actually focused
 src/bin/e_comp_x.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/src/bin/e_comp_x.c b/src/bin/e_comp_x.c
index 14753a4..0b4dea3 100644
--- a/src/bin/e_comp_x.c
+++ b/src/bin/e_comp_x.c
@@ -2178,6 +2178,9 @@ _e_comp_x_mouse_in(void *data EINA_UNUSED, int type 
EINA_UNUSED, Ecore_X_Event_M
    E_Client *ec;
+   if ((ev->mode == ECORE_X_EVENT_MODE_NORMAL) &&
+       ((ev->detail == ECORE_X_EVENT_DETAIL_INFERIOR) || (ev->detail == 
    ec = _e_comp_x_client_find_by_window(ev->win);
    if (!ec) return ECORE_CALLBACK_RENEW;
    if (_e_comp_x_client_data_get(ec)->deleted) return ECORE_CALLBACK_RENEW;


Reply via email to