make fake mouse-out upon focus-out conditional on pending pointer warp

in the case where warping would not occur and a mouse-based focus policy was
not in use, this would break mouse eventing on wayland when a window lost focus
but the cursor remained inside the window

ref 3e6d6b348f
This commit is contained in:
Mike Blumenkrantz 2016-11-22 11:29:54 -05:00
parent e95541635e
commit 8f8b25ae7d
1 changed files with 2 additions and 1 deletions

View File

@ -3406,7 +3406,8 @@ e_client_focused_set(E_Client *ec)
ec_unfocus->want_focus = ec_unfocus->focused = 0;
if (!e_object_is_del(E_OBJECT(ec_unfocus)))
e_focus_event_focus_out(ec_unfocus);
if (ec_unfocus->mouse.in && ec && (!e_client_util_is_popup(ec)))
if (ec_unfocus->mouse.in && ec && (!e_client_util_is_popup(ec)) &&
(e_config->focus_policy != E_FOCUS_CLICK) && e_config->pointer_slide)
e_client_mouse_out(ec_unfocus, ec_unfocus->x - 1, ec_unfocus->y - 1);
E_FREE_FUNC(ec_unfocus->raise_timer, ecore_timer_del);