From: Changyeon Lee Date: Wed, 11 Dec 2019 05:39:05 +0000 (+0900) Subject: e_hwc_windows_queue: unset queue if target need to use it X-Git-Tag: submit/tizen/20200206.060445~13 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=ebd33bf53524f3471a5671d77ba00afa12dea9ee;p=platform%2Fupstream%2Fenlightenment.git e_hwc_windows_queue: unset queue if target need to use it if queue state is waiting_buffer and user of queue has queue buffer, queue of target must be used by target Change-Id: I67d1eafd7b70afa715a5ecfa734895b13600b597 --- diff --git a/src/bin/e_hwc_window_queue.c b/src/bin/e_hwc_window_queue.c index 953fb00b67..b9261a3eff 100644 --- a/src/bin/e_hwc_window_queue.c +++ b/src/bin/e_hwc_window_queue.c @@ -1084,7 +1084,18 @@ _e_hwc_window_queue_cb_accepted_state_set(void *data, E_Hwc_Window *hwc_window) { if (e_hwc_window_is_target(hwc_window)) { - if (queue->state != E_HWC_WINDOW_QUEUE_STATE_SET) return; + if (queue->state == E_HWC_WINDOW_QUEUE_STATE_SET_WAITING_BUFFER) + { + if (!queue->user) return; + if (!queue->user->buffer.tsurface) return; + if (!e_hwc_window_queue_buffer_find(queue, queue->user->buffer.tsurface)) + return; + } + else + { + if (queue->state != E_HWC_WINDOW_QUEUE_STATE_SET) + return; + } EINA_LIST_FOREACH_SAFE(queue->user_pending_set, l, ll, tmp_hwc_window) e_hwc_window_constraints_reset(tmp_hwc_window); diff --git a/src/bin/e_hwc_windows.c b/src/bin/e_hwc_windows.c index d32a62f274..93b8092155 100644 --- a/src/bin/e_hwc_windows.c +++ b/src/bin/e_hwc_windows.c @@ -2452,11 +2452,8 @@ _e_hwc_windows_target_state_set(E_Hwc_Window_Target *target_hwc_window, E_Hwc_Wi { E_Hwc_Window *target_window = (E_Hwc_Window *)target_hwc_window; - if (target_window->state != state) - e_hwc_window_state_set(target_window, state, EINA_FALSE); - - if (target_window->accepted_state != state) - e_hwc_window_accepted_state_set(target_window, state); + e_hwc_window_state_set(target_window, state, EINA_FALSE); + e_hwc_window_accepted_state_set(target_window, state); } /* evaluate the hwc_windows */