e_compositor: Add e_surface_{try,}from_ec 67/315667/2
authorSeunghun Lee <shiin.lee@samsung.com>
Tue, 30 Jul 2024 06:39:40 +0000 (15:39 +0900)
committerJunSeok Kim <juns.kim@samsung.com>
Tue, 6 Aug 2024 05:17:23 +0000 (05:17 +0000)
Change-Id: I742eb7cffb5f0933cee3f1096866693271ebe3b5

src/bin/server/e_compositor.c
src/bin/server/e_compositor_intern.h

index cd67b28..49e7e1c 100644 (file)
@@ -325,6 +325,24 @@ e_surface_from_resource(struct wl_resource *surface_resource)
    return _e_surface_from_ds_surface(ds_surface_from_resource(surface_resource));
 }
 
+EINTERN E_Surface *
+e_surface_from_ec(E_Client *ec)
+{
+   E_Surface *surface;
+
+   assert(ec->comp_data);
+
+   return wl_container_of(ec->comp_data, surface, base);
+}
+
+EINTERN E_Surface *
+e_surface_try_from_ec(E_Client *ec)
+{
+   EINA_SAFETY_ON_NULL_RETURN_VAL(ec->comp_data, NULL);
+
+   return e_surface_from_ec(ec);
+}
+
 EINTERN void
 e_surface_destroy_listener_add(E_Surface *surface, struct wl_listener *listener)
 {
index e47fc35..37c9068 100644 (file)
@@ -12,6 +12,8 @@ typedef struct _E_Subsurface E_Subsurface;
 EINTERN Eina_Bool e_compositor_init(struct wl_display *display);
 
 EINTERN E_Surface *e_surface_from_resource(struct wl_resource *surface_resource);
+EINTERN E_Surface *e_surface_from_ec(E_Client *ec);
+EINTERN E_Surface *e_surface_try_from_ec(E_Client *ec);
 EINTERN void e_surface_destroy_listener_add(E_Surface *surface, struct wl_listener *listener);
 EINTERN void e_surface_parent_destroy_listener_add(E_Surface *surface, struct wl_listener *listener);
 EINTERN void e_surface_precommit_to_cache_listener_add(E_Surface *surface, struct wl_listener *listener);