static void
_e_policy_client_del(E_Policy_Client *pc)
{
+ wl_list_remove(&pc->client_unmap.link);
wl_list_remove(&pc->client_map_post.link);
wl_list_remove(&pc->client_map_prepare.link);
wl_list_remove(&pc->client_parent_set.link);
e_view_client_signal_emit(e_client_view_get(ec), "e,action,map,done", "e");
}
+static void
+_e_policy_client_cb_client_unmap(struct wl_listener *listener, void *data)
+{
+ E_Policy_Client *policy_client;
+ E_Client *ec;
+
+ policy_client = wl_container_of(listener, policy_client, client_unmap);
+
+ ec = policy_client->ec;
+ EINA_SAFETY_ON_NULL_RETURN(ec);
+
+ e_policy_client_unmap(policy_client->ec);
+}
+
EINTERN E_Policy_Client *
e_policy_client_add(E_Client *ec)
{
pc->client_map_post.notify = _e_policy_client_cb_client_map_post;
e_client_map_post_listener_add(ec, &pc->client_map_post);
+ pc->client_unmap.notify = _e_policy_client_cb_client_unmap;
+ e_client_unmap_listener_add(ec, &pc->client_unmap);
+
return pc;
}
struct wl_listener client_parent_set;
struct wl_listener client_map_prepare;
struct wl_listener client_map_post;
+ struct wl_listener client_unmap;
};
struct _E_Policy_System_Info