e_zone: Add zone client focused set function 11/320611/1
authorJunseok Kim <juns.kim@samsung.com>
Tue, 11 Feb 2025 02:53:34 +0000 (11:53 +0900)
committerTizen Window System <tizen.windowsystem@gmail.com>
Wed, 5 Mar 2025 05:00:11 +0000 (14:00 +0900)
Change-Id: I3242f10af4c6b26a5e539e5a9a77755da25e012d

src/bin/core/e_zone.c
src/bin/core/e_zone_intern.h
src/bin/windowmgr/e_policy_zone.c

index 0130cdce732a8b21b2e08cfe1841cc1521b5be9a..e9f612911f51997425738613033df46fef596086 100644 (file)
@@ -54,6 +54,7 @@ struct _E_Zone_Private
         struct wl_signal desk_count;
         struct wl_signal client_add;
         struct wl_signal focused_client_get;
+        struct wl_signal focused_client_set;
         struct wl_signal zone_client_top_get;
         struct wl_signal zone_client_bottom_get;
         struct wl_signal zone_client_above_get;
@@ -145,6 +146,7 @@ _e_zone_private_init(E_Zone *zone)
    wl_signal_init(&priv->events.desk_count);
    wl_signal_init(&priv->events.client_add);
    wl_signal_init(&priv->events.focused_client_get);
+   wl_signal_init(&priv->events.focused_client_set);
    wl_signal_init(&priv->events.zone_client_top_get);
    wl_signal_init(&priv->events.zone_client_bottom_get);
    wl_signal_init(&priv->events.zone_client_above_get);
@@ -1143,6 +1145,17 @@ e_zone_focused_client_get(E_Zone *zone)
    return focused_ec;
 }
 
+EINTERN void
+e_zone_focused_client_set(E_Zone *zone, E_Client *ec)
+{
+   EINA_SAFETY_ON_NULL_RETURN(zone);
+
+   wl_signal_emit(&PRI(zone)->events.focused_client_set, ec);
+
+   ELOGF("ZONE", "Focused client set: %p", ec, ec);
+   return;
+}
+
 EINTERN void
 e_zone_client_set_event_emit(E_Zone *zone, E_Client *ec)
 {
@@ -1343,6 +1356,13 @@ e_zone_focused_client_get_listener_add(E_Zone *zone, struct wl_listener *listene
    wl_signal_add(&priv->events.focused_client_get, listener);
 }
 
+EINTERN void
+e_zone_focused_client_set_listener_add(E_Zone *zone, struct wl_listener *listener)
+{
+   API_ENTRY;
+   wl_signal_add(&priv->events.focused_client_set, listener);
+}
+
 EINTERN void
 e_zone_client_top_get_listener_add(E_Zone *zone, struct wl_listener *listener)
 {
index 535a7fa99ad0ce288dfad2c83b0f98eb56394e6c..3e5e535c6ea4342db38aa94629ca22e81ea780a3 100644 (file)
@@ -115,6 +115,7 @@ EINTERN void                 e_zone_client_add(E_Zone *zone, E_Client *ec);
 EINTERN Eina_Bool            e_zone_has_ec(E_Zone *zone, E_Client *ec);
 EINTERN Eina_Bool            e_zone_is_displaying(E_Zone *zone);
 EINTERN E_Client            *e_zone_focused_client_get(E_Zone *zone);
+EINTERN void                 e_zone_focused_client_set(E_Zone *zone, E_Client *ec);
 
 EINTERN void      e_zone_desk_count_set(E_Zone *zone, int x_count, int y_count);
 EINTERN void      e_zone_desk_count_get(E_Zone *zone, int *x_count, int *y_count);
@@ -148,6 +149,7 @@ EINTERN void e_zone_bg_mouse_down_listener_add(E_Zone *zone, struct wl_listener
 EINTERN void e_zone_bg_mouse_up_listener_add(E_Zone *zone, struct wl_listener *listener);
 EINTERN void e_zone_client_add_listener_add(E_Zone *zone, struct wl_listener *listener);
 EINTERN void e_zone_focused_client_get_listener_add(E_Zone *zone, struct wl_listener *listener);
+EINTERN void e_zone_focused_client_set_listener_add(E_Zone *zone, struct wl_listener *listener);
 EINTERN void e_zone_client_top_get_listener_add(E_Zone *zone, struct wl_listener *listener);
 EINTERN void e_zone_client_bottom_get_listener_add(E_Zone *zone, struct wl_listener *listener);
 EINTERN void e_zone_client_above_get_listener_add(E_Zone *zone, struct wl_listener *listener);
index 23f77489b2ea58979218ac5901b26e4b37e09d12..c5eed688b6eec32bd20a216d2ec0815db5f95135 100644 (file)
@@ -53,6 +53,7 @@ struct _E_Policy_Zone
    struct wl_listener desk_prev;
    struct wl_listener desk_count;
    struct wl_listener focused_client_get;
+   struct wl_listener focused_client_set;
 
    struct wl_listener zone_client_top_get;            // from e_zone
    struct wl_listener zone_client_bottom_get;         // from e_zone
@@ -766,6 +767,20 @@ _e_policy_zone_cb_focused_client_get(struct wl_listener *listener, void *data)
    return;
 }
 
+static void
+_e_policy_zone_cb_focused_client_set(struct wl_listener *listener, void *data)
+{
+   //E_Policy_Zone *policy_zone;
+   //E_Zone *zone;
+
+   //policy_zone = wl_container_of(listener, policy_zone, focused_client_set);
+   //zone = policy_zone->zone;
+
+   // TODO:: Need to impl
+
+   return;
+}
+
 static void
 _e_zone_policy_input_thread_focused_client_set(void *data)
 {
@@ -2009,6 +2024,8 @@ e_policy_zone_new(E_Zone *zone)
    e_zone_bg_mouse_up_listener_add(zone, &policy_zone->bg_mouse_up);
    policy_zone->focused_client_get.notify = _e_policy_zone_cb_focused_client_get;
    e_zone_focused_client_get_listener_add(zone, &policy_zone->focused_client_get);
+   policy_zone->focused_client_set.notify = _e_policy_zone_cb_focused_client_set;
+   e_zone_focused_client_set_listener_add(zone, &policy_zone->focused_client_set);
 
    policy_zone->desk_row_add.notify = _e_policy_zone_cb_desk_row_add;
    e_zone_desk_row_add_listener_add(zone, &policy_zone->desk_row_add);