e_info_client/server: add zone information for topwins 06/270806/1
authorDoyoun Kang <doyoun.kang@samsung.com>
Mon, 7 Feb 2022 08:11:39 +0000 (17:11 +0900)
committerDoyoun Kang <doyoun.kang@samsung.com>
Wed, 9 Feb 2022 07:59:09 +0000 (16:59 +0900)
Change-Id: I5c4ca05645c046566e1e5329a612e4c4f82a65a0

src/bin/e_info_client.c
src/bin/e_info_server.c

index 03a87ef328099ebbd48c9bccd1a0b215c0f1edf4..64b4ce37a73d176b1087b1200dccbbbedee38ad8 100644 (file)
@@ -67,6 +67,7 @@ typedef struct _E_Win_Info
    Eina_Bool has_input_region;
    Eina_Bool    transformed;
    E_Transient  transient_policy;
+   int          zone_id;
 } E_Win_Info;
 
 typedef struct output_mode_info
@@ -96,7 +97,7 @@ typedef struct _E_Fps_Info
    double fps;
 } E_Fps_Info;
 
-#define VALUE_TYPE_FOR_TOPVWINS "uuisiiiiibbbiibibbiiiusbbi"
+#define VALUE_TYPE_FOR_TOPVWINS "uuisiiiiibbbiibibbiiiusbbii"
 #define VALUE_TYPE_REQUEST_RESLIST "ui"
 #define VALUE_TYPE_REPLY_RESLIST "ssi"
 #define VALUE_TYPE_FOR_INPUTDEV "ssi"
@@ -380,7 +381,7 @@ static E_Win_Info *
 _e_win_info_new(Ecore_Window id, uint32_t res_id, int pid, Eina_Bool alpha, int opaque, const char *name,
                 int x, int y, int w, int h, int layer, int visible, int mapped, int visibility, Eina_Bool force_obscured,
                 int iconic, int frame_visible, int focused, int hwc, int hwc_policy, int pl_zpos, Ecore_Window parent_id,
-                const char *layer_name, Eina_Bool has_input_region, Eina_Bool transformed, E_Transient transient_policy)
+                const char *layer_name, Eina_Bool has_input_region, Eina_Bool transformed, E_Transient transient_policy, int zone_id)
 {
    E_Win_Info *win = NULL;
 
@@ -413,6 +414,7 @@ _e_win_info_new(Ecore_Window id, uint32_t res_id, int pid, Eina_Bool alpha, int
    win->has_input_region = has_input_region;
    win->transformed = transformed;
    win->transient_policy = transient_policy;
+   win->zone_id = zone_id;
 
    return win;
 }
@@ -449,6 +451,7 @@ _e_win_info_make_array(Eldbus_Message_Iter *array)
         E_Win_Info *win = NULL;
         Eina_Bool has_input_region = EINA_FALSE;
         int transient_policy;
+        int zone_id;
         res = eldbus_message_iter_arguments_get(ec,
                                                 VALUE_TYPE_FOR_TOPVWINS,
                                                 &id,
@@ -476,7 +479,8 @@ _e_win_info_make_array(Eldbus_Message_Iter *array)
                                                 &layer_name,
                                                 &has_input_region,
                                                 &transformed,
-                                                &transient_policy);
+                                                &transient_policy,
+                                                &zone_id);
         if (!res)
           {
              printf("Failed to get win info\n");
@@ -486,7 +490,7 @@ _e_win_info_make_array(Eldbus_Message_Iter *array)
         win = _e_win_info_new(id, res_id, pid, alpha, opaque, win_name, x, y, w, h,
                               layer, visible, mapped, visibility, force_obscured, iconic, frame_visible,
                               focused, hwc, hwc_policy, pl_zpos, parent_id, layer_name,
-                              has_input_region, transformed, (E_Transient)transient_policy);
+                              has_input_region, transformed, (E_Transient)transient_policy, zone_id);
         e_info_client.win_list = eina_list_append(e_info_client.win_list, win);
      }
 }
@@ -1042,9 +1046,9 @@ _e_info_client_proc_ec_list_info(void)
    printf("\n\n%d Top level windows in EC list\n", eina_list_count(e_info_client.win_list));
    printf("--------------------------------------------[ topvwins ]------------------------------------------------------------------------------\n");
    if (e_info_client.hwc_windows)
-     printf(" No   Win_ID    RcsID    PID  T    w     h       x      y  Foc InReg Dep Opaq Vsbt Icon Vis Map  Frame  HWC_ST  Parent   TP    Title\n");
+     printf(" No   Win_ID    RcsID    PID  T    w     h       x      y  Zone Foc InReg Dep Opaq Vsbt Icon Vis Map  Frame  HWC_ST  Parent   TP    Title\n");
    else
-     printf(" No   Win_ID    RcsID    PID  T    w     h       x      y  Foc InReg Dep Opaq Vsbt Icon Vis Map  Frame  PL@ZPos Parent   TP    Title\n");
+     printf(" No   Win_ID    RcsID    PID  T    w     h       x      y  Zone Foc InReg Dep Opaq Vsbt Icon Vis Map  Frame  PL@ZPos Parent   TP    Title\n");
    printf("--------------------------------------------------------------------------------------------------------------------------------------\n");
 
    if (!e_info_client.win_list)
@@ -1103,7 +1107,7 @@ _e_info_client_proc_ec_list_info(void)
              snprintf(tmp, sizeof(tmp), " - ");
           }
 
-        printf("%3d 0x%08zx  %5d  %5d  %c %5d %5d %6d %6d   %c    %c   %3d  %2d   ", i, win->id, win->res_id, win->pid, win->transformed ? 'O':' ', win->w, win->h, win->x, win->y, win->focused ? 'O':' ', win->has_input_region?'C':' ', win->alpha? 32:24, win->opaque);
+        printf("%3d 0x%08zx  %5d  %5d  %c %5d %5d %6d %6d   %2d   %c    %c   %3d  %2d   ", i, win->id, win->res_id, win->pid, win->transformed ? 'O':' ', win->w, win->h, win->x, win->y, win->zone_id, win->focused ? 'O':' ', win->has_input_region?'C':' ', win->alpha? 32:24, win->opaque);
         printf("%2d%c   %d   %d   %s   %3d    %-8s%-8zx %c  %s\n", win->visibility, win->force_obscured ? 'f':' ', win->iconic, win->vis, win->mapped? "V":"N", win->frame_visible, tmp, win->parent_id, win->parent_id?(win->transient_policy?'B':'A'):' ',win->name?:"No Name");
      }
 
@@ -1170,9 +1174,9 @@ _e_info_client_proc_topvwins_info(int argc, char **argv)
    printf("\n%d Top level windows in evas object list\n", eina_list_count(e_info_client.win_list));
    printf("--------------------------------------[ topvwins ]----------------------------------------------------------------------------------\n");
    if (e_info_client.hwc_windows)
-     printf(" No   Win_ID    RcsID    PID     w     h       x      y  Foc InReg Dep Opaq Vsbt Icon Vis Map  Frame  HWC_ST  Parent   TP    Title\n");
+     printf(" No   Win_ID    RcsID    PID     w     h       x      y  Zone Foc InReg Dep Opaq Vsbt Icon Vis Map  Frame  HWC_ST  Parent   TP    Title\n");
    else
-     printf(" No   Win_ID    RcsID    PID     w     h       x      y  Foc InReg Dep Opaq Vsbt Icon Vis Map  Frame  PL@ZPos Parent   TP    Title\n");
+     printf(" No   Win_ID    RcsID    PID     w     h       x      y  Zone Foc InReg Dep Opaq Vsbt Icon Vis Map  Frame  PL@ZPos Parent   TP    Title\n");
    printf("------------------------------------------------------------------------------------------------------------------------------------\n");
 
    if (!e_info_client.win_list)
@@ -1231,7 +1235,7 @@ _e_info_client_proc_topvwins_info(int argc, char **argv)
              snprintf(tmp, sizeof(tmp), " - ");
           }
 
-        printf("%3d 0x%08zx  %5d  %5d  %5d %5d %6d %6d   %c    %c   %3d  %2d   ", i, win->id, win->res_id, win->pid, win->w, win->h, win->x, win->y, win->focused ? 'O':' ', win->has_input_region?'C':' ', win->alpha? 32:24, win->opaque);
+        printf("%3d 0x%08zx  %5d  %5d  %5d %5d %6d %6d   %2d   %c    %c   %3d  %2d   ", i, win->id, win->res_id, win->pid, win->w, win->h, win->x, win->y, win->zone_id, win->focused ? 'O':' ', win->has_input_region?'C':' ', win->alpha? 32:24, win->opaque);
         printf("%2d%c   %d   %d   %s   %3d    %-8s%-8zx %c  %s\n", win->visibility, win->force_obscured ? 'f':' ', win->iconic, win->vis, win->mapped? "V":"N", win->frame_visible, tmp, win->parent_id, win->parent_id?(win->transient_policy?'B':'A'):' ',win->name?:"No Name");
      }
 
@@ -1271,9 +1275,9 @@ _e_info_client_proc_topwins_info(int argc, char **argv)
    printf("%d Top level windows\n", eina_list_count(e_info_client.win_list));
    printf("--------------------------------------[ topvwins ]----------------------------------------------------------------------------------\n");
    if (e_info_client.hwc_windows)
-     printf(" No   Win_ID    RcsID    PID     w     h       x      y  Foc InReg Dep Opaq Vsbt Icon Vis Map  Frame  HWC_ST  Parent   TP    Title\n");
+     printf(" No   Win_ID    RcsID    PID     w     h       x      y  Zone Foc InReg Dep Opaq Vsbt Icon Vis Map  Frame  HWC_ST  Parent   TP    Title\n");
    else
-     printf(" No   Win_ID    RcsID    PID     w     h       x      y  Foc InReg Dep Opaq Vsbt Icon Vis Map  Frame  PL@ZPos Parent   TP    Title\n");
+     printf(" No   Win_ID    RcsID    PID     w     h       x      y  Zone Foc InReg Dep Opaq Vsbt Icon Vis Map  Frame  PL@ZPos Parent   TP    Title\n");
    printf("------------------------------------------------------------------------------------------------------------------------------------\n");
 
    if (!e_info_client.win_list)
@@ -1332,7 +1336,7 @@ _e_info_client_proc_topwins_info(int argc, char **argv)
              snprintf(tmp, sizeof(tmp), " - ");
           }
 
-        printf("%3d 0x%08zx  %5d  %5d  %5d %5d %6d %6d   %c    %c   %3d  %2d   ", i, win->id, win->res_id, win->pid, win->w, win->h, win->x, win->y, win->focused ? 'O':' ', win->has_input_region ? 'C':' ',win->alpha? 32:24, win->opaque);
+        printf("%3d 0x%08zx  %5d  %5d  %5d %5d %6d %6d   %2d   %c    %c   %3d  %2d   ", i, win->id, win->res_id, win->pid, win->w, win->h, win->x, win->y, win->zone_id, win->focused ? 'O':' ', win->has_input_region ? 'C':' ',win->alpha? 32:24, win->opaque);
         printf("%2d%c   %d   %d   %s   %3d    %-8s%-8zx %c  %s\n", win->visibility, win->force_obscured ? 'f':' ', win->iconic, win->vis, win->mapped? "V":"N", win->frame_visible, tmp, win->parent_id, win->parent_id?(win->transient_policy?'B':'A'):' ',win->name?:"No Name");
      }
 
index f8de3edcff5a4265ce0839e43c20db7864b5a411..04b4b9ee04f777a91a28602f62ae774e94a6c1f4 100644 (file)
@@ -79,7 +79,7 @@ static Eina_List *module_hook = NULL;
    str_r -= str_l; \
 } while(0)
 
-#define VALUE_TYPE_FOR_TOPVWINS "uuisiiiiibbbiibibbiiiusbbi"
+#define VALUE_TYPE_FOR_TOPVWINS "uuisiiiiibbbiibibbiiiusbbii"
 #define VALUE_TYPE_REQUEST_RESLIST "ui"
 #define VALUE_TYPE_REPLY_RESLIST "ssi"
 #define VALUE_TYPE_FOR_INPUTDEV "ssi"
@@ -254,6 +254,7 @@ _msg_ecs_append(Eldbus_Message_Iter *iter, Eina_Bool is_visible)
         Eina_Bool mapped = EINA_FALSE;
         Eina_Bool transformed = EINA_FALSE;
         int x = 0, y = 0, w = 0, h = 0;
+        int zone_id = -1;
 
         if (is_visible && e_client_util_ignored_get(ec)) continue;
 
@@ -301,6 +302,9 @@ _msg_ecs_append(Eldbus_Message_Iter *iter, Eina_Bool is_visible)
 
         transformed = e_client_transform_core_enable_get(ec);
 
+        if (ec->zone)
+          zone_id = ec->zone->id;
+
         eldbus_message_iter_arguments_append(array_of_ec, "("VALUE_TYPE_FOR_TOPVWINS")", &struct_of_ec);
 
         eldbus_message_iter_arguments_append
@@ -311,7 +315,8 @@ _msg_ecs_append(Eldbus_Message_Iter *iter, Eina_Bool is_visible)
             e_client_util_name_get(ec) ?: "NO NAME",
             x, y, w, h, ec->layer,
             ec->visible, mapped, ec->argb, ec->visibility.opaque, ec->visibility.obscured, ec->visibility.force_obscured, iconified,
-            evas_object_visible_get(ec->frame), ec->focused, hwc, hwc_policy, pl_zpos, pwin, layer_name, has_input_region, transformed, ec->transient_policy);
+            evas_object_visible_get(ec->frame), ec->focused, hwc, hwc_policy, pl_zpos, pwin, layer_name, has_input_region, transformed, ec->transient_policy,
+            zone_id);
 
         eldbus_message_iter_container_close(array_of_ec, struct_of_ec);
      }
@@ -343,6 +348,7 @@ _msg_clients_append(Eldbus_Message_Iter *iter, Eina_Bool is_visible)
         Eina_List *list_input_region = NULL;
         Eina_Bool mapped = EINA_FALSE;
         Eina_Bool transformed = EINA_FALSE;
+        int zone_id = -1;
 
         ec = evas_object_data_get(o, "E_Client");
         if (!ec) continue;
@@ -391,6 +397,9 @@ _msg_clients_append(Eldbus_Message_Iter *iter, Eina_Bool is_visible)
 
         transformed = e_client_transform_core_enable_get(ec);
 
+        if (ec->zone)
+          zone_id = ec->zone->id;
+
         eldbus_message_iter_arguments_append(array_of_ec, "("VALUE_TYPE_FOR_TOPVWINS")", &struct_of_ec);
 
         eldbus_message_iter_arguments_append
@@ -401,7 +410,8 @@ _msg_clients_append(Eldbus_Message_Iter *iter, Eina_Bool is_visible)
             e_client_util_name_get(ec) ?: "NO NAME",
             ec->x, ec->y, ec->w, ec->h, ec->layer,
             ec->visible, mapped, ec->argb, ec->visibility.opaque, ec->visibility.obscured, ec->visibility.force_obscured, iconified,
-            evas_object_visible_get(ec->frame), ec->focused, hwc, hwc_policy, pl_zpos, pwin, layer_name, has_input_region, transformed, ec->transient_policy);
+            evas_object_visible_get(ec->frame), ec->focused, hwc, hwc_policy, pl_zpos, pwin, layer_name, has_input_region, transformed, ec->transient_policy,
+            zone_id);
 
         eldbus_message_iter_container_close(array_of_ec, struct_of_ec);
      }