xdg_shell_v6: Remove e_client dependency 83/323183/1
authorSeunghun Lee <shiin.lee@samsung.com>
Tue, 25 Mar 2025 07:46:36 +0000 (16:46 +0900)
committerTizen Window System <tizen.windowsystem@gmail.com>
Thu, 24 Apr 2025 02:15:34 +0000 (11:15 +0900)
Change-Id: Id082735a74b7cfcfc28c67a6701c9c86a568e537

src/bin/server/e_desktop_shell.c
src/bin/server/e_desktop_shell_intern.h
src/bin/server/e_desktop_xdg_shell_v6.c
src/bin/server/e_desktop_xdg_shell_v6_intern.h

index 2d431bc3a3f16375444c50f230834de278053a16..7691a8dc4e8e52b16fffad4f71e2009bc5425e02 100644 (file)
@@ -406,3 +406,9 @@ e_desktop_toplevel_size_get(E_Desktop_Toplevel *toplevel, int32_t *width, int32_
      e_client_maximized_geometry_get(ec, NULL, NULL, width, height);
 }
 
+EINTERN E_Client *
+e_desktop_toplevel_ec_get(E_Desktop_Toplevel *toplevel)
+{
+   return e_surface_ec_get(toplevel->surface.surface);
+}
+
index 765e25e7c323956f39dbb6eb05d356c60587b5f6..c3fb05efcb47869b74aa967c699e6fc3fd95d02c 100644 (file)
@@ -2,6 +2,7 @@
 #define E_DESKTOP_SHELL_INTERN_H
 
 #include "e_compositor_intern.h"
+#include "e_client_intern.h"
 
 #include <stdbool.h>
 #include <wayland-server.h>
@@ -20,6 +21,7 @@ void e_desktop_surface_map(E_Desktop_Surface *surface);
 void e_desktop_surface_unmap(E_Desktop_Surface *surface);
 
 E_Desktop_Toplevel *e_desktop_toplevel_try_from_surface(E_Surface *e_surface);
+E_Client *e_desktop_toplevel_ec_get(E_Desktop_Toplevel *toplevel);
 bool e_desktop_toplevel_is_fullscreen(E_Desktop_Toplevel *toplevel);
 bool e_desktop_toplevel_is_maximized(E_Desktop_Toplevel *toplevel);
 bool e_desktop_toplevel_is_activated(E_Desktop_Toplevel *toplevel);
index 849f6b9766b676f57e372aab4ab498d4686b4f13..1df5d341d3d83f6b500657d03203521a6ee7e2a0 100644 (file)
@@ -1,7 +1,6 @@
-#include "e_compositor_intern.h"
-#include "e_desktop_shell_intern.h"
+#include "e_desktop_xdg_shell_v6_intern.h"
 #include "e_desktop_shell_private.h"
-#include "e_client_intern.h"
+#include "e_compositor_intern.h"
 
 #include <stdbool.h>
 #include <libds/surface.h>
@@ -14,7 +13,6 @@
 #define LOG(f, x...)  INF("XDG6 <LOG> " f, ##x)
 
 typedef struct _E_Desktop_Xdg_Shell_V6 E_Desktop_Xdg_Shell_V6;
-typedef struct _E_Desktop_Xdg_Toplevel_V6 E_Desktop_Xdg_Toplevel_V6;
 
 struct _E_Desktop_Xdg_Shell_V6
 {
@@ -27,7 +25,6 @@ struct _E_Desktop_Xdg_Shell_V6
 struct _E_Desktop_Xdg_Toplevel_V6
 {
    struct ds_xdg_toplevel_v6 *ds_toplevel;
-   E_Client *ec;
    E_Desktop_Toplevel *toplevel;
 
    E_Desktop_Surface_Interface impl;
@@ -81,19 +78,16 @@ e_desktop_xdg_shell_v6_init(struct wl_display *display)
    return EINA_TRUE;
 }
 
-EINTERN E_Client *
-e_desktop_xdg_shell_v6_xdg_surface_ec_get(struct wl_resource *resource)
+EINTERN E_Desktop_Xdg_Toplevel_V6 *
+e_desktop_xdg_toplevel_v6_from_shell_surface_resource(struct wl_resource *shell_surface_resource)
 {
-   E_Desktop_Xdg_Toplevel_V6 *toplevel;
-
-   toplevel = _toplevel_from_shell_surface_resource(resource);
-   if (!toplevel)
-     {
-        ERR("No E_Desktop_Xdg_Toplevel_V6 in wl_resource");
-        return NULL;
-     }
+   return _toplevel_from_shell_surface_resource(shell_surface_resource);
+}
 
-   return toplevel->ec;
+EINTERN E_Desktop_Toplevel *
+e_desktop_xdg_toplevel_v6_desktop_toplevel_get(E_Desktop_Xdg_Toplevel_V6 *toplevel)
+{
+   return toplevel->toplevel;
 }
 
 static void
@@ -552,13 +546,12 @@ _toplevel_add(struct ds_xdg_surface_v6 *ds_xdg_surface)
    _toplevel_desktop_surface_interface_init(&toplevel->impl);
 
    toplevel->ds_toplevel = ds_xdg_surface->toplevel;
-   toplevel->ec = e_surface_ec_get(surface);
    toplevel->toplevel = e_desktop_toplevel_create(surface, &toplevel->impl, ds_xdg_surface->resource);
 
    _toplevel_init(toplevel);
    _toplevel_listener_init(toplevel);
 
-   ELOGF("XDG6", "Created E_Desktop_Xdg_Toplevel_V6(%p)", toplevel->ec, toplevel);
+   ELOGF("XDG6", "Created E_Desktop_Xdg_Toplevel_V6(%p)", e_surface_ec_get(surface), toplevel);
 }
 
 static void
@@ -568,7 +561,7 @@ _toplevel_cb_xdg_surface_destroy(struct wl_listener *listener, void *data)
 
    toplevel = wl_container_of(listener, toplevel, destroy);
 
-   ELOGF("XDG6", "Destroy E_Desktop_Xdg_Toplevel_V6(%p)", toplevel->ec, toplevel);
+   LOG("Destroy E_Desktop_Xdg_Toplevel_V6(%p)", toplevel);
 
    _toplevel_listener_finish(toplevel);
    free(toplevel);
index 3dbac84f14e36701f614660562d5030c902c3f5c..74cecac67222b335e496393e688f251aab72ceff 100644 (file)
@@ -2,8 +2,13 @@
 #define E_XDG_SHELL_V6_INTERN_H
 
 #include "e_intern.h"
+#include "e_desktop_shell_intern.h"
+
+typedef struct _E_Desktop_Xdg_Toplevel_V6 E_Desktop_Xdg_Toplevel_V6;
 
 EINTERN Eina_Bool e_desktop_xdg_shell_v6_init(struct wl_display *display);
-EINTERN E_Client *e_desktop_xdg_shell_v6_xdg_surface_ec_get(struct wl_resource *resource);
+
+E_Desktop_Xdg_Toplevel_V6 *e_desktop_xdg_toplevel_v6_from_shell_surface_resource(struct wl_resource *shell_surface_resource);
+E_Desktop_Toplevel *e_desktop_xdg_toplevel_v6_desktop_toplevel_get(E_Desktop_Xdg_Toplevel_V6 *toplevel);
 
 #endif