Object is being invalidated and losing its parent. See Efl.Object.invalidate.
Since 1.22
invalidate @hot;
EFL_EVENT_INVALIDATE(void, @hot)
static void on_efl_event_invalidate(void *data, const Efl_Event *event) { void info = event->info; Eo *obj = event->object; Data *d = data; /* event hander code */ } static void setup_event_handler(Eo *obj, Data *d) { efl_event_callback_add(obj, EFL_EVENT_INVALIDATE, on_efl_event_invalidate, d); }