return wl_container_of(listener, desk_client, client_destroy);
}
+static E_Policy_Desk_Private_Client *
+_e_policy_desk_private_client_new(E_Client *ec)
+{
+ E_Policy_Desk_Private_Client *desk_client;
+
+ desk_client = E_NEW(E_Policy_Desk_Private_Client, 1);
+ if (!desk_client)
+ {
+ ERR("POL_DESK:: Failed to alloc private client, ec(%p):%s", ec, e_client_icccm_title_get(ec));
+ return NULL;
+ }
+
+ desk_client->ec = ec;
+
+ // e_client listeners
+ desk_client->client_destroy.notify = _e_policy_desk_cb_client_destroy;
+ e_client_destroy_listener_add(ec, &desk_client->client_destroy);
+ desk_client->client_activate_done.notify = _e_policy_desk_cb_client_activate_done;
+ e_client_activate_done_listener_add(ec, &desk_client->client_activate_done);
+
+ return desk_client;
+}
+
static void
_e_policy_desk_private_client_del(E_Policy_Desk_Private_Client *desk_client)
{
ELOGF("POL_DESK", "CLIENT ADD. desk:%p", ec, desk);
- desk_client = E_NEW(E_Policy_Desk_Private_Client, 1);
+ desk_client = _e_policy_desk_private_client_new(ec);
EINA_SAFETY_ON_NULL_RETURN(desk_client);
desk_client->desk = desk;
- desk_client->ec = ec;
-
- // e_client listeners
- desk_client->client_destroy.notify = _e_policy_desk_cb_client_destroy;
- e_client_destroy_listener_add(ec, &desk_client->client_destroy);
- desk_client->client_activate_done.notify = _e_policy_desk_cb_client_activate_done;
- e_client_activate_done_listener_add(ec, &desk_client->client_activate_done);
_e_policy_desk_client_set(desk, ec);
_e_policy_desk_client_data_set(desk, ec);