static void
_e_alpha_mask_rect_destroy(E_Alpha_Mask_Rect *rect)
{
+ E_View *view;
+
ELOGF("ALPHA_MASK", "Destroy E_Alpha_Mask_Rect(%p)", rect->ec, rect);
+ view = e_view_rect_view_get(rect->view);
+
e_comp_wl_hook_del(rect->subsurface_create_hook);
evas_object_smart_callback_del(rect->ec->frame, "client_resize", _e_alpha_mask_rect_cb_client_resize);
- wl_list_remove(&rect->show.link);
- wl_list_remove(&rect->hide.link);
- wl_list_remove(&rect->reposition.link);
- wl_list_remove(&rect->resize.link);
+ e_view_event_listener_del(view, E_VIEW_SHOW, &rect->show);
+ e_view_event_listener_del(view, E_VIEW_HIDE, &rect->hide);
+ e_view_event_listener_del(view, E_VIEW_MOVE, &rect->reposition);
+ e_view_event_listener_del(view, E_VIEW_RESIZE, &rect->resize);
wl_list_remove(&rect->transform_change.link);
wl_list_remove(&rect->destroy.link);
e_view_destroy(e_view_rect_view_get(rect->view));