e_view_client: Add getter to get E_Client of view client 68/324068/1
authorJunseok Kim <juns.kim@samsung.com>
Wed, 30 Apr 2025 07:38:58 +0000 (16:38 +0900)
committerTizen Window System <tizen.windowsystem@gmail.com>
Mon, 12 May 2025 12:53:23 +0000 (21:53 +0900)
Change-Id: Ibbb90844cacba822a70840b467e07b8219a938a5

src/bin/core/e_view_client.c
src/bin/core/e_view_client_intern.h

index 3e0fff9aa80b4336eacf5a102accb08b03e87a7c..226ef7f82ea8df16635b582f9419a5d1fef2d757 100644 (file)
@@ -41,6 +41,10 @@ struct _E_View_Client
      {
         struct wl_signal resize;
      } events;
+
+#ifdef TEMPORARY_CIRCULAR_REF_CLIENT
+   E_Client *ec;
+#endif
 };
 
 typedef struct _E_View_Client_Effect
@@ -287,6 +291,9 @@ e_view_client_create(E_Client *ec, E_View_Tree *parent)
 
    evas_object_event_callback_add(client->view.eo, EVAS_CALLBACK_RESIZE, _view_client_evas_object_cb_resize, client);
 
+#ifdef TEMPORARY_CIRCULAR_REF_CLIENT
+   client->ec = ec;
+#endif
    return client;
 }
 
@@ -1360,3 +1367,13 @@ e_view_client_dim_mask_update(E_View_Client *client, bool mask_set, int x, int y
 
    e_comp_object_dim_mask_update(client->view.eo, mask_set, x, y, w, h);
 }
+
+#ifdef TEMPORARY_CIRCULAR_REF_CLIENT
+EINTERN E_Client *
+e_view_client_e_client_get(E_View_Client *client)
+{
+   if (client == NULL) return NULL;
+
+   return client->ec;
+}
+#endif
index 466b139e7fac8b5a6842519d1cbf73bf53291d46..43047c5879ba63f00b63d33a15e262149e5a5605 100644 (file)
@@ -8,6 +8,8 @@ extern "C" {
 #include "e_view_client.h"
 #include "e_view_edje_intern.h"
 
+#define TEMPORARY_CIRCULAR_REF_CLIENT 1
+
 E_View_Client *e_view_client_create(E_Client *ec, E_View_Tree *parent);
 void e_view_client_render_update_del(E_View_Client *view_client);
 bool e_view_client_alpha_get(E_View_Client *client);
@@ -72,6 +74,10 @@ void e_view_client_native_surface_set(E_View_Client *client, bool set);
 void e_view_client_input_rect_get(E_View_Client *client, Eina_List **list);
 bool e_view_client_is_input_acceptable(E_View_Client *client, int x, int y);
 
+#ifdef TEMPORARY_CIRCULAR_REF_CLIENT
+E_Client *e_view_client_e_client_get(E_View_Client *client);
+#endif
+
 #ifdef  __cplusplus
 }
 #endif