summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Blumenkrantz <zmike@osg.samsung.com>2018-01-17 17:33:57 -0500
committerMike Blumenkrantz <zmike@osg.samsung.com>2018-01-17 17:01:01 -0500
commitbeb430a00bfd094212a658d2adc0e8d8e6fff1a5 (patch)
tree26c7bd44ade2494ed5ff4b48e74429021941fbe7
parentc13ae0a63099de1781e3bb29e314a1da4a4acc92 (diff)
efl-wl: immediately unset a destroyed surface's cursor
@fix
-rw-r--r--src/lib/efl_wl/efl_wl.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/lib/efl_wl/efl_wl.c b/src/lib/efl_wl/efl_wl.c
index 050ee897ec..f5da388de4 100644
--- a/src/lib/efl_wl/efl_wl.c
+++ b/src/lib/efl_wl/efl_wl.c
@@ -1861,7 +1861,19 @@ comp_surface_impl_destroy(struct wl_resource *resource)
1861 { 1861 {
1862 if (s->kbd.enter == cs) s->kbd.enter = NULL; 1862 if (s->kbd.enter == cs) s->kbd.enter = NULL;
1863 if (s->ptr.enter == cs) s->ptr.enter = NULL; 1863 if (s->ptr.enter == cs) s->ptr.enter = NULL;
1864 if (s->ptr.cursor.surface == cs) s->ptr.cursor.surface = NULL; 1864 if (s->ptr.cursor.surface == cs)
1865 {
1866 if (s->ptr.in)
1867 {
1868 const Eina_List *l;
1869 Eo *dev;
1870 Ecore_Evas *ee = ecore_evas_ecore_evas_get(s->c->evas);
1871 EINA_LIST_FOREACH(evas_device_list(s->c->evas, s->dev), l, dev)
1872 if (evas_device_class_get(dev) == EVAS_DEVICE_CLASS_MOUSE)
1873 ecore_evas_cursor_device_unset(ee, dev);
1874 }
1875 s->ptr.cursor.surface = NULL;
1876 }
1865 if (s->drag.surface == cs) s->drag.surface = NULL; 1877 if (s->drag.surface == cs) s->drag.surface = NULL;
1866 } 1878 }
1867 eina_hash_list_remove(cs->c->client_surfaces, &client, cs); 1879 eina_hash_list_remove(cs->c->client_surfaces, &client, cs);