discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=b7cb24c32395f4f2b1fb0cdb57696d19e7c5a6d6
commit b7cb24c32395f4f2b1fb0cdb57696d19e7c5a6d6 Author: Mike Blumenkrantz <[email protected]> Date: Tue Jun 19 13:40:52 2018 -0400 evas: switch to EFL_EVENT_INVALIDATE for event grabber sub-object deletion Summary: this requires the parent of the deleted object to be reachable, so use the invalidate callback as this is the last point during which it's possible to retrieve a parent object ref T7030 Depends on D6320 Reviewers: bu5hm4n, Hermet, woohyun, devilhorns Reviewed By: bu5hm4n Subscribers: cedric, #committers Tags: #efl Maniphest Tasks: T7030 Differential Revision: https://phab.enlightenment.org/D6321 --- src/lib/evas/canvas/efl_canvas_event_grabber.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/lib/evas/canvas/efl_canvas_event_grabber.c b/src/lib/evas/canvas/efl_canvas_event_grabber.c index deb1c28bcc..df7282754b 100644 --- a/src/lib/evas/canvas/efl_canvas_event_grabber.c +++ b/src/lib/evas/canvas/efl_canvas_event_grabber.c @@ -189,7 +189,7 @@ _efl_canvas_object_event_grabber_child_restack(void *data, const Efl_Event *even } static void -_efl_canvas_object_event_grabber_child_del(void *data, const Efl_Event *event) +_efl_canvas_object_event_grabber_child_invalidate(void *data, const Efl_Event *event) { Efl_Object_Event_Grabber_Data *pd = data; @@ -244,7 +244,7 @@ _efl_canvas_event_grabber_efl_canvas_group_group_member_add(Eo *eo_obj, Efl_Obje events->parent = eo_obj; EINA_COW_WRITE_END(evas_object_events_cow, sub->events, events); _child_insert(pd, sub); - efl_event_callback_add(eo_sub, EFL_EVENT_DEL, _efl_canvas_object_event_grabber_child_del, pd); + efl_event_callback_add(eo_sub, EFL_EVENT_INVALIDATE, _efl_canvas_object_event_grabber_child_invalidate, pd); if (eo_sub != pd->rect) efl_event_callback_add(eo_sub, EFL_GFX_ENTITY_EVENT_RESTACK, _efl_canvas_object_event_grabber_child_restack, pd); } @@ -254,7 +254,7 @@ _efl_canvas_event_grabber_efl_canvas_group_group_member_del(Eo *eo_obj EINA_UNUS { Evas_Object_Protected_Data *obj = efl_data_scope_get(member, EFL_CANVAS_OBJECT_CLASS); - efl_event_callback_del(member, EFL_EVENT_DEL, _efl_canvas_object_event_grabber_child_del, pd); + efl_event_callback_del(member, EFL_EVENT_INVALIDATE, _efl_canvas_object_event_grabber_child_invalidate, pd); efl_event_callback_del(member, EFL_GFX_ENTITY_EVENT_RESTACK, _efl_canvas_object_event_grabber_child_restack, pd); pd->contained = eina_list_remove(pd->contained, obj); --
