e_hwc_windows: add checking transition to none 80/210980/3
authorChangyeon Lee <cyeon.lee@samsung.com>
Fri, 26 Jul 2019 04:44:34 +0000 (13:44 +0900)
committerSooChan Lim <sc1.lim@samsung.com>
Mon, 29 Jul 2019 12:25:55 +0000 (12:25 +0000)
Change-Id: I929750a03d0aa6a7ac596b3da61e88ebb53a118c

src/bin/e_hwc_windows.c

index 98ab327a31eb02f3b9abb4d87383658ab19ae9ff..1111671a8d9761235ae78885c062585377620c18 100644 (file)
@@ -1417,6 +1417,19 @@ _e_hwc_windows_transition_check(E_Hwc *hwc)
              if ((hwc_window->ec) && (!e_pixmap_resource_get(hwc_window->ec->pixmap)))
                continue;
 
+             if (!_e_hwc_windows_target_window_rendered_window_has(hwc, hwc_window))
+               {
+                  e_hwc_window_transition_set(hwc_window, E_HWC_WINDOW_TRANSITION_DEVICE_TO_CLIENT);
+                  transition = EINA_TRUE;
+               }
+          }
+        /* DEVICE -> NONE */
+        else if (hwc_window->state == E_HWC_WINDOW_STATE_NONE &&
+                 hwc_window->accepted_state == E_HWC_WINDOW_STATE_DEVICE)
+          {
+             if ((hwc_window->ec) && (!e_pixmap_resource_get(hwc_window->ec->pixmap)))
+               continue;
+
              if (!_e_hwc_windows_target_window_rendered_window_has(hwc, hwc_window))
                {
                   e_hwc_window_transition_set(hwc_window, E_HWC_WINDOW_TRANSITION_DEVICE_TO_CLIENT);
@@ -1430,6 +1443,19 @@ _e_hwc_windows_transition_check(E_Hwc *hwc)
              if ((hwc_window->ec) && (!e_pixmap_resource_get(hwc_window->ec->pixmap)))
                continue;
 
+             if (!_e_hwc_windows_target_window_rendered_window_has(hwc, hwc_window))
+               {
+                  e_hwc_window_transition_set(hwc_window, E_HWC_WINDOW_TRANSITION_CURSOR_TO_CLIENT);
+                  transition = EINA_TRUE;
+               }
+          }
+        /* CURSOR -> NONE */
+        else if (hwc_window->state == E_HWC_WINDOW_STATE_NONE &&
+                 hwc_window->accepted_state == E_HWC_WINDOW_STATE_CURSOR)
+          {
+             if ((hwc_window->ec) && (!e_pixmap_resource_get(hwc_window->ec->pixmap)))
+               continue;
+
              if (!_e_hwc_windows_target_window_rendered_window_has(hwc, hwc_window))
                {
                   e_hwc_window_transition_set(hwc_window, E_HWC_WINDOW_TRANSITION_CURSOR_TO_CLIENT);