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:
parent
5a69750ba9
commit
6d14a6492f
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue