e_info: print all ECs list on topwins operation 95/291295/1
authorJunseok Kim <juns.kim@samsung.com>
Tue, 11 Apr 2023 06:31:45 +0000 (15:31 +0900)
committerTizen Window System <tizen.windowsystem@gmail.com>
Thu, 13 Apr 2023 04:38:06 +0000 (13:38 +0900)
There was no way to present invisible ECs list because of past topwins prints just evas object in e_comp->evas.
So, print all ECs on topwins operation.

Change-Id: I6f5170d26d2a4e1ae9f5e5760bd369eced5f919a

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

index f6776c5..32c9f1f 100644 (file)
@@ -1117,7 +1117,7 @@ finish:
 }
 
 static void
-_e_info_client_proc_ec_list_info(void)
+_e_info_client_proc_ec_list_info(Eina_Bool check_visible)
 {
    E_Win_Info *win;
    Eina_List *l;
@@ -1127,8 +1127,16 @@ _e_info_client_proc_ec_list_info(void)
 
    const char *prev_layer_name = NULL;
 
-   if (!_e_info_client_eldbus_message("get_ec_info", _cb_vec_info_get))
-     return;
+   if (check_visible)
+     {
+        if (!_e_info_client_eldbus_message("get_ec_info", _cb_vec_info_get))
+          return;
+     }
+   else
+     {
+        if (!_e_info_client_eldbus_message("get_all_ec_info", _cb_vec_info_get))
+          return;
+     }
 
    printf("\n\n%d Top level windows in EC list\n", eina_list_count(e_info_client.win_list));
    printf("--------------------------------------------[ topvwins ]------------------------------------------------------------------------------\n");
@@ -1357,7 +1365,7 @@ _e_info_client_proc_topvwins_info(int argc, char **argv)
      }
 
 ec_info:
-   _e_info_client_proc_ec_list_info();
+   _e_info_client_proc_ec_list_info(EINA_TRUE);
 
 }
 
@@ -1373,7 +1381,7 @@ _e_info_client_proc_topwins_info(int argc, char **argv)
    const char *prev_layer_name = NULL;
 
    if (!_e_info_client_eldbus_message("get_all_window_info", _cb_window_info_get))
-     return;
+     goto ec_info;
 
    printf("%d Top level windows\n", eina_list_count(e_info_client.win_list));
    printf("--------------------------------------[ topvwins ]----------------------------------------------------------------------------------\n");
@@ -1386,12 +1394,12 @@ _e_info_client_proc_topwins_info(int argc, char **argv)
    if (!e_info_client.win_list)
      {
         printf("no window\n");
-        return;
+        goto ec_info;
      }
 
    EINA_LIST_FOREACH(e_info_client.win_list, l, win)
      {
-        if (!win) return;
+        if (!win) goto ec_info;
         char tmp[20];
         i++;
         if (win->layer != prev_layer)
@@ -1451,6 +1459,9 @@ _e_info_client_proc_topwins_info(int argc, char **argv)
      printf("\nHWC is disabled\n\n");
 
    E_FREE_LIST(e_info_client.win_list, _e_win_info_free);
+
+ec_info:
+   _e_info_client_proc_ec_list_info(EINA_FALSE);
 }
 
 static void
index 24ac6fb..7e7b3a3 100644 (file)
@@ -518,6 +518,19 @@ _e_info_server_cb_ec_info_get(const Eldbus_Service_Interface *iface EINA_UNUSED,
 
    return reply;
 }
+static Eldbus_Message *
+_e_info_server_cb_all_ec_info_get(const Eldbus_Service_Interface *iface EINA_UNUSED, const Eldbus_Message *msg)
+{
+   Eldbus_Message *reply = eldbus_message_method_return_new(msg);
+   Eldbus_Message_Iter *iter = eldbus_message_iter_get(reply);
+
+   eldbus_message_iter_basic_append(iter, 'i', e_comp->hwc);
+   eldbus_message_iter_basic_append(iter, 'i', _e_info_server_is_hwc_windows());
+
+   _msg_ecs_append(iter, EINA_FALSE);
+
+   return reply;
+}
 
 /* Method Handlers */
 static Eldbus_Message *
@@ -7702,6 +7715,7 @@ _e_info_server_cb_prop_set(const Eldbus_Service_Interface *iface EINA_UNUSED, co
 static const Eldbus_Method methods[] = {
    { "get_window_info", NULL, ELDBUS_ARGS({"iiiiisiiia("VALUE_TYPE_FOR_TOPVWINS")", "array of ec"}), _e_info_server_cb_window_info_get, 0 },
    { "get_ec_info", NULL, ELDBUS_ARGS({"iia("VALUE_TYPE_FOR_TOPVWINS")", "array of ec"}),_e_info_server_cb_ec_info_get, 0 },
+   { "get_all_ec_info", NULL, ELDBUS_ARGS({"iia("VALUE_TYPE_FOR_TOPVWINS")", "array of ec"}),_e_info_server_cb_all_ec_info_get, 0 },
    { "get_all_window_info", NULL, ELDBUS_ARGS({"iia("VALUE_TYPE_FOR_TOPVWINS")", "array of ec"}), _e_info_server_cb_all_window_info_get, 0 },
    { "get_zone_info", NULL, ELDBUS_ARGS({"("VALUE_TYPE_FOR_ZONE")", "array of zone"}), _e_info_server_cb_zone_info_get, 0 },
    { "compobjs", NULL, ELDBUS_ARGS({"a("SIGNATURE_COMPOBJS_CLIENT")", "array of comp objs"}), _e_info_server_cb_compobjs, 0 },