e_policy_desk: functionize function to create client of policy desk 81/325181/1
authorJunseok Kim <juns.kim@samsung.com>
Mon, 12 May 2025 10:25:59 +0000 (19:25 +0900)
committerTizen Window System <tizen.windowsystem@gmail.com>
Wed, 4 Jun 2025 06:55:56 +0000 (15:55 +0900)
Change-Id: Ibddd565e49c0e29f6b84853231ca80a4005dcd90

src/bin/windowmgr/e_policy_desk.c

index b8653a700d592ca339af486cb550b3a10c12af53..870aba4e65f57ede3701d233faf561176b8c7220 100644 (file)
@@ -385,6 +385,29 @@ _e_policy_desk_private_client_get(E_Client *ec)
    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)
 {
@@ -813,17 +836,10 @@ _e_policy_desk_cb_desk_client_add(struct wl_listener *listener, void *data)
 
    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);