libweston: Fix clear timing of output repainted flag

Since the repaint status of the flushed output may be reset if a output
repaint is failed, it is necessary to clear the repainted flag
immediately after output repaint flush/cancel.

Signed-off-by: Tomohito Esaki <etom@igel.co.jp>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
dev
Tomohito Esaki 7 years ago committed by Pekka Paalanen
parent 8108239c39
commit ddaf95c5a1
  1. 5
      libweston/compositor.c

@ -2450,8 +2450,6 @@ weston_output_maybe_repaint(struct weston_output *output, struct timespec *now,
int ret = 0; int ret = 0;
int64_t msec_to_repaint; int64_t msec_to_repaint;
output->repainted = false;
/* We're not ready yet; come back to make a decision later. */ /* We're not ready yet; come back to make a decision later. */
if (output->repaint_status != REPAINT_SCHEDULED) if (output->repaint_status != REPAINT_SCHEDULED)
return ret; return ret;
@ -2563,6 +2561,9 @@ output_repaint_timer_handler(void *data)
repaint_data); repaint_data);
} }
wl_list_for_each(output, &compositor->output_list, link)
output->repainted = false;
output_repaint_timer_arm(compositor); output_repaint_timer_arm(compositor);
return 0; return 0;

Loading…
Cancel
Save