forked from enlightenment/efl
efl-wl: immediately unset a destroyed surface's cursor
@fix
This commit is contained in:
parent
c13ae0a630
commit
beb430a00b
|
@ -1861,7 +1861,19 @@ comp_surface_impl_destroy(struct wl_resource *resource)
|
||||||
{
|
{
|
||||||
if (s->kbd.enter == cs) s->kbd.enter = NULL;
|
if (s->kbd.enter == cs) s->kbd.enter = NULL;
|
||||||
if (s->ptr.enter == cs) s->ptr.enter = NULL;
|
if (s->ptr.enter == cs) s->ptr.enter = NULL;
|
||||||
if (s->ptr.cursor.surface == cs) s->ptr.cursor.surface = NULL;
|
if (s->ptr.cursor.surface == cs)
|
||||||
|
{
|
||||||
|
if (s->ptr.in)
|
||||||
|
{
|
||||||
|
const Eina_List *l;
|
||||||
|
Eo *dev;
|
||||||
|
Ecore_Evas *ee = ecore_evas_ecore_evas_get(s->c->evas);
|
||||||
|
EINA_LIST_FOREACH(evas_device_list(s->c->evas, s->dev), l, dev)
|
||||||
|
if (evas_device_class_get(dev) == EVAS_DEVICE_CLASS_MOUSE)
|
||||||
|
ecore_evas_cursor_device_unset(ee, dev);
|
||||||
|
}
|
||||||
|
s->ptr.cursor.surface = NULL;
|
||||||
|
}
|
||||||
if (s->drag.surface == cs) s->drag.surface = NULL;
|
if (s->drag.surface == cs) s->drag.surface = NULL;
|
||||||
}
|
}
|
||||||
eina_hash_list_remove(cs->c->client_surfaces, &client, cs);
|
eina_hash_list_remove(cs->c->client_surfaces, &client, cs);
|
||||||
|
|
Loading…
Reference in New Issue