if queue state is waiting_buffer and user of queue has
queue buffer, queue of target must be used by target
Change-Id: I67d1eafd7b70afa715a5ecfa734895b13600b597
{
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);
{
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 */