e_client: add e_client_map_prepare 75/320875/1
authorSooChan Lim <sc1.lim@samsung.com>
Sun, 9 Mar 2025 07:51:48 +0000 (16:51 +0900)
committerTizen Window System <tizen.windowsystem@gmail.com>
Mon, 10 Mar 2025 08:46:03 +0000 (17:46 +0900)
This function sends the map_prepare signal on e_client

Change-Id: I95d18b6111ad723fc6649b146935f0d0174f6a56

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

index d6b0366461257a36f81ddf4a33f321f71bbb73cc..d54e42d59b7d81c5db06c475a1529ce099f13056 100644 (file)
@@ -120,6 +120,7 @@ struct _E_Client_Private
         struct wl_signal resize_end;
         struct wl_signal virtual_touch;
         struct wl_signal parent_set;
+        struct wl_signal map_prepare;
      } events;
 
    Eina_Bool hide_by_request;
@@ -1066,6 +1067,7 @@ _e_client_private_init(E_Client *ec)
    wl_signal_init(&priv->events.virtual_touch);
 
    wl_signal_init(&priv->events.parent_set);
+   wl_signal_init(&priv->events.map_prepare);
 
    e_object_data_set(E_OBJECT(ec), priv);
 
@@ -3077,6 +3079,14 @@ e_client_mapped_set(E_Client *ec, Eina_Bool set)
    cdata->mapped = set;
 }
 
+EINTERN void
+e_client_map_prepare(E_Client *ec)
+{
+   EINA_SAFETY_ON_NULL_RETURN(ec);
+
+   wl_signal_emit(&PRI(ec)->events.map_prepare, NULL);
+}
+
 EINTERN void
 e_client_modal_child_set(E_Client *ec, E_Client *modal)
 {
@@ -7267,6 +7277,13 @@ e_client_parent_set_listener_add(E_Client *ec, struct wl_listener *listener)
    wl_signal_add(&priv->events.parent_set, listener);
 }
 
+EINTERN void
+e_client_map_prepare_listener_add(E_Client *ec, struct wl_listener *listener)
+{
+   API_ENTRY;
+   wl_signal_add(&priv->events.map_prepare, listener);
+}
+
 EINTERN Eina_Bool
 e_client_shell_configure_send(E_Client *ec, uint32_t edges, int32_t width, int32_t height)
 {
index aca2b2d5e05e9c107e41671202577eb57e9f044c..62426606a5633873f11a8b7ddf7ceb8c5a3a4059 100644 (file)
@@ -139,6 +139,7 @@ EINTERN E_Client *e_client_under_pointer_get(E_Desk *desk, E_Client *exclude);
 EINTERN E_Client *e_client_transient_child_top_get(E_Client *ec, Eina_Bool consider_focus);
 EINTERN Eina_Bool e_client_mapped_get(E_Client *ec);
 EINTERN void      e_client_mapped_set(E_Client *ec, Eina_Bool set);
+EINTERN void      e_client_map_prepare(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);
@@ -260,6 +261,7 @@ EINTERN void e_client_mouse_move_listener_add(E_Client *ec, struct wl_listener *
 EINTERN void e_client_resize_end_listener_add(E_Client *ec, struct wl_listener *listener);
 EINTERN void e_client_virtual_touch_listener_add(E_Client *ec, struct wl_listener *listener);
 EINTERN void e_client_parent_set_listener_add(E_Client *ec, struct wl_listener *listener);
+EINTERN void e_client_map_prepare_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);