discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=c2ecadae14920f9c3fd8de6723bcfb010d8b2baf
commit c2ecadae14920f9c3fd8de6723bcfb010d8b2baf Author: Mike Blumenkrantz <[email protected]> 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 == ECORE_X_EVENT_DETAIL_VIRTUAL))) + return ECORE_CALLBACK_PASS_ON; 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; --
