return NULL;
}
+static void _conf_event_listener_del(Conformant_Type type)
+{
+ E_View *view;
+
+ view = e_view_client_view_get(e_client_view_get(g_conf->part[type].ec));
+ wl_list_remove(&g_conf->part[type].del_listener.link);
+ e_view_event_listener_del(view, E_VIEW_SHOW, &g_conf->part[type].show_listener);
+ e_view_event_listener_del(view, E_VIEW_HIDE, &g_conf->part[type].hide_listener);
+ e_view_event_listener_del(view, E_VIEW_MOVE, &g_conf->part[type].move_listener);
+ e_view_event_listener_del(view, E_VIEW_RESIZE, &g_conf->part[type].resize_listener);
+}
+
static void
_conf_cb_part_del(struct wl_listener *listener, void *data)
{
Conformant_Part *conf_part;
Conformant_Type type;
Defer_Job *job;
- E_View *view;
if (!g_conf)
return;
INF("PART %s ec(%p) Deleted", _conf_type_to_str(type), g_conf->part[type].ec);
if (g_conf->part[type].ec)
- {
- view = e_view_client_view_get(e_client_view_get(g_conf->part[type].ec));
- e_view_event_listener_del(view, E_VIEW_SHOW, &g_conf->part[type].show_listener);
- e_view_event_listener_del(view, E_VIEW_HIDE, &g_conf->part[type].hide_listener);
- e_view_event_listener_del(view, E_VIEW_MOVE, &g_conf->part[type].move_listener);
- e_view_event_listener_del(view, E_VIEW_RESIZE, &g_conf->part[type].resize_listener);
- }
+ _conf_event_listener_del(type);
g_conf->part[type].ec = NULL;
g_conf->part[type].state.will_hide = EINA_FALSE;
_conf_part_deregister(E_Client *ec, Conformant_Type type)
{
Defer_Job *job;
- E_View *view;
if (!g_conf)
return;
wl_list_remove(&g_conf->part[type].comp_object_hiding.link);
// deregister callback
- view = e_view_client_view_get(e_client_view_get(ec));
- wl_list_remove(&g_conf->part[type].del_listener.link);
- e_view_event_listener_del(view, E_VIEW_SHOW, &g_conf->part[type].show_listener);
- e_view_event_listener_del(view, E_VIEW_HIDE, &g_conf->part[type].hide_listener);
- e_view_event_listener_del(view, E_VIEW_MOVE, &g_conf->part[type].move_listener);
- e_view_event_listener_del(view, E_VIEW_RESIZE, &g_conf->part[type].resize_listener);
+ if (g_conf->part[type].ec)
+ _conf_event_listener_del(type);
g_conf->part[type].type = CONFORMANT_TYPE_MAX;
g_conf->part[type].ec = NULL;