E_View_Edje_Signal *signal, *signal_tmp;
E_View_Edje_Swallow *swallow, *swallow_tmp;
- e_view_event_listener_del(view, E_VIEW_RESTACK, &edje->restack);
+ if (edje->restack.notify != NULL)
+ e_view_event_listener_del(view, E_VIEW_RESTACK, &edje->restack);
+ if (edje->destroy.notify != NULL)
+ wl_list_remove(&edje->destroy.link);
evas_object_del(view->eo);
if (!canvas)
return NULL;
- edje = malloc(sizeof(*edje));
+ edje = calloc(1, sizeof(E_View_Edje));
if (!edje)
return NULL;
edje->edje_edit = false;
e_view_edje_signal_callback_del(edje, "e,action,*,done", "e", _e_view_edje_util_done_defer);
+ wl_list_remove(&edje->destroy.link);
+ edje->destroy.notify = NULL;
+ e_view_event_listener_del(edje_view, E_VIEW_RESTACK, &edje->restack);
+ edje->restack.notify = NULL;
+
comp_object = !!e_view_data_get(edje_view, "comp_object");
if (comp_object)
{