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

Change-Id: If21490c22e5fcece5939af27b8ea1a4ec76554a8

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

index 0ca0a774a96fb194955e9cdfea3bacb639c6621f..21edea234210c20a5f667feb5cdf9d455aa0fef5 100644 (file)
@@ -121,6 +121,7 @@ struct _E_Client_Private
         struct wl_signal shell_remove;
 
         struct wl_signal service_role_set;
+        struct wl_signal service_role_unset;
      } events;
 
    Eina_Bool hide_by_request;
@@ -704,6 +705,7 @@ _e_client_private_init(E_Client *ec)
    wl_signal_init(&priv->events.shell_remove);
 
    wl_signal_init(&priv->events.service_role_set);
+   wl_signal_init(&priv->events.service_role_unset);
 
    e_object_data_set(E_OBJECT(ec), priv);
 
@@ -2664,6 +2666,14 @@ e_client_service_role_set(E_Client *ec, int role)
    wl_signal_emit(&PRI(ec)->events.service_role_set, &role);
 }
 
+EINTERN void
+e_client_service_role_unset(E_Client *ec)
+{
+   EINA_SAFETY_ON_NULL_RETURN(ec);
+
+   wl_signal_emit(&PRI(ec)->events.service_role_unset, NULL);
+}
+
 EINTERN void
 e_client_modal_child_set(E_Client *ec, E_Client *modal)
 {
@@ -6455,6 +6465,13 @@ e_client_service_role_set_listener_add(E_Client *ec, struct wl_listener *listene
    wl_signal_add(&priv->events.service_role_set, listener);
 }
 
+EINTERN void
+e_client_service_role_unset_listener_add(E_Client *ec, struct wl_listener *listener)
+{
+   API_ENTRY;
+   wl_signal_add(&priv->events.service_role_unset, listener);
+}
+
 static E_Desktop_Surface *
 _desktop_surface_try_from_ec(E_Client *ec)
 {
index 7f2c980cc65acea4dc1653fdc1910e88b90a9e1c..4ebf08c6c44170c58f62aa2fae27ea7d47edbfb3 100644 (file)
@@ -655,6 +655,7 @@ 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_service_role_unset(E_Client *ec);
 
 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);
@@ -763,6 +764,7 @@ EINTERN void e_client_map_post_listener_add(E_Client *ec, struct wl_listener *li
 
 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 void e_client_service_role_unset_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);