e_hwc_window_queue: reset constraints if window isn't set device type 14/216614/2
authorChangyeon Lee <cyeon.lee@samsung.com>
Thu, 24 Oct 2019 05:19:03 +0000 (14:19 +0900)
committerGwanglim Lee <gl77.lee@samsung.com>
Mon, 4 Nov 2019 05:28:37 +0000 (05:28 +0000)
if buffer of queue is commited, hwc_window should be set by device type

Change-Id: I30f46a159bfdab455b0dff874b90e69c0d6f8f51

src/bin/e_hwc_window_queue.c

index 433ad966994329dac0aa67133619b5ff71a6d6c2..ebd2ce5170433b77b096dd4bb213308833c73256 100644 (file)
@@ -1048,9 +1048,19 @@ _e_hwc_window_queue_cb_accepted_state_set(void *data, E_Hwc_Window *hwc_window)
    queue = hwc_window->queue;
    state = e_hwc_window_accepted_state_get(hwc_window);
 
-   if ((state == E_HWC_WINDOW_STATE_DEVICE) &&
-       (queue->state == E_HWC_WINDOW_QUEUE_STATE_SET_WAITING_BUFFER))
-     _e_hwc_window_queue_set(queue);
+   if ((state == E_HWC_WINDOW_STATE_DEVICE))
+     {
+        if(queue->state == E_HWC_WINDOW_QUEUE_STATE_SET_WAITING_BUFFER)
+          _e_hwc_window_queue_set(queue);
+     }
+   else if ((state == E_HWC_WINDOW_STATE_CLIENT) || (state == E_HWC_WINDOW_STATE_NONE))
+     {
+        /* if buffer of queue is commited, hwc_window should be set by Device Type */
+        if (!hwc_window->buffer.tsurface) return;
+
+        if (e_hwc_window_queue_buffer_find(queue, hwc_window->buffer.tsurface))
+          e_hwc_window_constraints_reset(hwc_window);
+     }
 }
 
 static void