path: root/src
diff options
authorJean-Philippe Andre <>2017-06-12 17:39:34 +0900
committerJean-Philippe Andre <>2017-06-12 17:41:45 +0900
commit9b1e785f8ebba618016dd217aa18835b4fb675b7 (patch)
treee4446392d564452e1a6ca2f30a7b5718988a5515 /src
parente5922c07205b1c17894f34e52c7be47b2f3088fd (diff)
evas: Fix use of invalid EO object
During a window destruction, the input devices are deleted and removed from the internal devices list. Since 83d18617b4375 basic devices are children of a seat, which means that the seat deletion was triggering the devices deletion as well. As a consequence, we were walking an invalid list of devices. I'm not sure we should have a list of children in the device data and I'm also not sure we should have a list of devices in evas, instead of just the list of seats. It's a bit messy right now. Ref T5540
Diffstat (limited to 'src')
1 files changed, 2 insertions, 0 deletions
diff --git a/src/lib/evas/canvas/evas_device.c b/src/lib/evas/canvas/evas_device.c
index 574f6e2..783497a 100644
--- a/src/lib/evas/canvas/evas_device.c
+++ b/src/lib/evas/canvas/evas_device.c
@@ -207,6 +207,8 @@ evas_device_add_full(Evas *eo_e, const char *name, const char *desc,
207 e->default_mouse = dev; 207 e->default_mouse = dev;
208 } 208 }
209 209
210 // FIXME: All devices are in the same list, while evas only refs the seats
211 if (parent_dev) efl_ref(dev);
210 e->devices = eina_list_append(e->devices, dev); 212 e->devices = eina_list_append(e->devices, dev);
211 efl_event_callback_add(dev, EFL_EVENT_DEL, _del_cb, e); 213 efl_event_callback_add(dev, EFL_EVENT_DEL, _del_cb, e);
212 214