add specific handling for xwl cursor unsetting on mouse-out to ssd

xwl clients will attempt to unset the cursor when mousing out of the surface,
but this can happen after evas events are triggered for the ssd due to
latency

if the given surface has mouse.in set, but the mouse is not inside the surface
area, assume that the mouse has just entered the compositor canvas

 #TheDisappointer
This commit is contained in:
Mike Blumenkrantz 2017-02-10 17:23:43 -05:00
parent 5a69750ba9
commit 6d14a6492f
1 changed files with 12 additions and 3 deletions

View File

@ -58,11 +58,20 @@ _e_comp_wl_input_pointer_cb_cursor_set(struct wl_client *client, struct wl_resou
if (client != wl_resource_get_client(ec->comp_data->surface)) continue;
if (ec->mouse.in)
{
got_mouse = EINA_TRUE;
break;
if (e_client_has_xwindow(ec))
got_mouse = E_INSIDE(ec->mouse.current.mx, ec->mouse.current.my,
ec->client.x, ec->client.y, ec->client.w, ec->client.h);
else
got_mouse = EINA_TRUE;
break;
}
}
if (!got_mouse) return;
if (!got_mouse)
{
if (ec && ec->mouse.in && (!surface_resource))
e_pointer_object_set(e_comp->pointer, NULL, 0, 0);
return;
}
if (!surface_resource)
{
ecore_evas_cursor_unset(e_comp->ee);