xdg_shell_v6: Split out _toplevel_create 19/323419/1
authorSeunghun Lee <shiin.lee@samsung.com>
Fri, 25 Apr 2025 04:54:39 +0000 (13:54 +0900)
committerTizen Window System <tizen.windowsystem@gmail.com>
Mon, 28 Apr 2025 07:44:54 +0000 (16:44 +0900)
This patch extracts the implementation of creating toplevel from
_toplevel_add function to improve readability.

Change-Id: Ifae97247f97a6df829c94fdc962d0f2259cfe04e

src/bin/server/e_desktop_xdg_shell_v6.c

index 8296c41f3767f10367836f9ed77cdd37463af421..6891e43c68eb4347f51bcfb0821659f792f12164 100644 (file)
@@ -456,9 +456,24 @@ _toplevel_listener_finish(E_Desktop_Xdg_Toplevel_V6 *toplevel)
 }
 
 static void
-_toplevel_init(E_Desktop_Xdg_Toplevel_V6 *toplevel)
+_toplevel_desktop_surface_interface_init(E_Desktop_Surface_Interface *iface)
 {
-   struct ds_xdg_toplevel_v6 *ds_toplevel = toplevel->ds_toplevel;
+   iface->configure_send = _toplevel_configure_send;
+   iface->configure = NULL;
+   iface->map = NULL;
+   iface->unmap = NULL;
+}
+
+static void
+_toplevel_init(E_Desktop_Xdg_Toplevel_V6 *toplevel, struct ds_xdg_surface_v6 *ds_xdg_surface)
+{
+   struct ds_xdg_toplevel_v6 *ds_toplevel = ds_xdg_surface->toplevel;
+   E_Surface *surface = e_surface_from_ds_surface(ds_xdg_surface->ds_surface);
+
+   toplevel->ds_toplevel = ds_toplevel;
+
+   _toplevel_desktop_surface_interface_init(&toplevel->impl);
+   e_desktop_toplevel_init(&toplevel->base, &toplevel->impl, surface, ds_xdg_surface->resource);
 
    _toplevel_title_update(toplevel);
    _toplevel_app_id_update(toplevel);
@@ -470,39 +485,36 @@ _toplevel_init(E_Desktop_Xdg_Toplevel_V6 *toplevel)
      e_desktop_toplevel_fullscreen_request(&toplevel->base);
 }
 
-static void
-_toplevel_desktop_surface_interface_init(E_Desktop_Surface_Interface *iface)
+static E_Desktop_Xdg_Toplevel_V6 *
+_toplevel_create(struct ds_xdg_surface_v6 *ds_xdg_surface)
 {
-   iface->configure_send = _toplevel_configure_send;
-   iface->configure = NULL;
-   iface->map = NULL;
-   iface->unmap = NULL;
+   E_Desktop_Xdg_Toplevel_V6 *toplevel;
+
+   toplevel = E_NEW(E_Desktop_Xdg_Toplevel_V6, 1);
+   if (!toplevel)
+     return NULL;
+
+   _toplevel_init(toplevel, ds_xdg_surface);
+   _toplevel_listener_init(toplevel);
+
+   LOG("Create E_Desktop_Xdg_Toplevel_V6(%p)", toplevel);
+
+   return toplevel;
 }
 
 static void
 _toplevel_add(E_Desktop_Xdg_Shell_V6 *shell, struct ds_xdg_surface_v6 *ds_xdg_surface)
 {
    E_Desktop_Xdg_Toplevel_V6 *toplevel;
-   E_Surface *surface = e_surface_from_ds_surface(ds_xdg_surface->ds_surface);
 
-   toplevel = E_NEW(E_Desktop_Xdg_Toplevel_V6, 1);
+   toplevel = _toplevel_create(ds_xdg_surface);
    if (!toplevel)
      {
         ERR("Could not create E_Desktop_Xdg_Toplevel_V6");
         return;
      }
 
-   toplevel->ds_toplevel = ds_xdg_surface->toplevel;
-
-   _toplevel_desktop_surface_interface_init(&toplevel->impl);
-   e_desktop_toplevel_init(&toplevel->base, &toplevel->impl, surface, ds_xdg_surface->resource);
-
-   _toplevel_init(toplevel);
-   _toplevel_listener_init(toplevel);
-
    e_desktop_shell_toplevel_add(shell->desktop_shell, &toplevel->base);
-
-   ELOGF("XDG6", "Created E_Desktop_Xdg_Toplevel_V6(%p)", e_surface_ec_get(surface), toplevel);
 }
 
 static void