e_client: add service_role_set signal 93/325593/1
authorSooChan Lim <sc1.lim@samsung.com>
Fri, 30 May 2025 01:38:03 +0000 (10:38 +0900)
committerTizen Window System <tizen.windowsystem@gmail.com>
Thu, 12 Jun 2025 10:40:31 +0000 (19:40 +0900)
This signal is used for setting the service role of the tizen_ws_shell requests.

Change-Id: I0011851401ad1659313ae4d1e8ca27b5056b82f2

src/bin/core/e_client.c
src/bin/core/e_client_intern.h

index cd38d074ded544effc15884a0c2e01d4a98190cd..0ca0a774a96fb194955e9cdfea3bacb639c6621f 100644 (file)
@@ -118,8 +118,9 @@ struct _E_Client_Private
         struct wl_signal parent_set;
         struct wl_signal map_prepare;
         struct wl_signal map_post;
-
         struct wl_signal shell_remove;
+
+        struct wl_signal service_role_set;
      } events;
 
    Eina_Bool hide_by_request;
@@ -702,6 +703,8 @@ _e_client_private_init(E_Client *ec)
 
    wl_signal_init(&priv->events.shell_remove);
 
+   wl_signal_init(&priv->events.service_role_set);
+
    e_object_data_set(E_OBJECT(ec), priv);
 
    return EINA_TRUE;
@@ -2653,6 +2656,14 @@ e_client_shell_remove(E_Client *ec)
    wl_signal_emit(&priv->events.shell_remove, NULL);
 }
 
+EINTERN void
+e_client_service_role_set(E_Client *ec, int role)
+{
+   EINA_SAFETY_ON_NULL_RETURN(ec);
+
+   wl_signal_emit(&PRI(ec)->events.service_role_set, &role);
+}
+
 EINTERN void
 e_client_modal_child_set(E_Client *ec, E_Client *modal)
 {
@@ -6437,6 +6448,13 @@ e_client_shell_remove_listener_add(E_Client *ec, struct wl_listener *listener)
    wl_signal_add(&priv->events.shell_remove, listener);
 }
 
+EINTERN void
+e_client_service_role_set_listener_add(E_Client *ec, struct wl_listener *listener)
+{
+   API_ENTRY;
+   wl_signal_add(&priv->events.service_role_set, listener);
+}
+
 static E_Desktop_Surface *
 _desktop_surface_try_from_ec(E_Client *ec)
 {
index 21ec111e90c2c9440883399bc11a4b9bf16d2635..7f2c980cc65acea4dc1653fdc1910e88b90a9e1c 100644 (file)
@@ -654,6 +654,8 @@ EINTERN Eina_Bool e_client_map_enable_set(E_Client *ec, Eina_Bool enabled);
 
 EINTERN void      e_client_shell_remove(E_Client *ec);
 
+EINTERN void      e_client_service_role_set(E_Client *ec, int role);
+
 EINTERN void      e_client_modal_child_set(E_Client *ec, E_Client *modal_child);
 EINTERN E_Client *e_client_modal_child_get(E_Client *ec);
 EINTERN void      e_client_modal_state_set(E_Client *ec, Eina_Bool modal);
@@ -760,6 +762,7 @@ EINTERN void e_client_map_prepare_listener_add(E_Client *ec, struct wl_listener
 EINTERN void e_client_map_post_listener_add(E_Client *ec, struct wl_listener *listener);
 
 EINTERN void e_client_shell_remove_listener_add(E_Client *ec, struct wl_listener *listener);
+EINTERN void e_client_service_role_set_listener_add(E_Client *ec, struct wl_listener *listener);
 
 EINTERN struct wl_listener  *e_client_destroy_listener_get(E_Client *ec, wl_notify_func_t notify);