e_hwc_windows: sort the hwc_windows by zpos
authorSooChan Lim <sc1.lim@samsung.com>
Thu, 7 Feb 2019 10:22:02 +0000 (19:22 +0900)
committerSooChan Lim <sc1.lim@samsung.com>
Fri, 12 Apr 2019 10:00:22 +0000 (19:00 +0900)
Change-Id: I29ce6c46f69a1ee2fffdc782e5d84ac8a95109ff

src/bin/e_hwc_windows.c

index 6bec8cab0897754cf362d135e603ad7226f1137f..30f7fb12b5d9dcccd14640274f91b69310165065 100644 (file)
@@ -2358,6 +2358,18 @@ e_hwc_windows_dump_stop(void)
    ehws_dump_enable = EINA_FALSE;
 }
 
+static int
+_e_hwc_windows_window_debug_cb_sort(const void *d1, const void *d2)
+{
+   E_Hwc_Window *hwc_window1 = (E_Hwc_Window *)d1;
+   E_Hwc_Window *hwc_window2 = (E_Hwc_Window *)d2;
+
+   if (!hwc_window1) return(1);
+   if (!hwc_window2) return(-1);
+
+   return (hwc_window2->zpos - hwc_window1->zpos);
+}
+
 static void
 _e_hwc_windows_window_debug_info_get(Eldbus_Message_Iter *iter, E_Hwc_Wins_Debug_Cmd cmd)
 {
@@ -2403,6 +2415,8 @@ _e_hwc_windows_window_debug_info_get(Eldbus_Message_Iter *iter, E_Hwc_Wins_Debug
         hwc = output->hwc;
         if (!output->hwc) continue;
 
+        hwc->hwc_windows = eina_list_sort(hwc->hwc_windows, eina_list_count(hwc->hwc_windows), _e_hwc_windows_window_debug_cb_sort);
+
         EINA_LIST_FOREACH(hwc->hwc_windows, l2, hwc_window)
           {
              if (!hwc_window) continue;