From a0b893587748dbc86ec576880fbe057d8748c644 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kristian=20H=C3=B8gsberg?= Date: Wed, 16 Oct 2013 11:10:12 -0700 Subject: [PATCH] compositor: Stop the repaint loop if the compositor went to sleep We check the state when we schedule a repaint, but we will still repaint in weston_output_finish_frame() if a repaint is needed. Now we check whether we went to sleep while waiting for the page flip and stop repainting in that case. https://bugs.freedesktop.org/show_bug.cgi?id=65802 --- src/compositor.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/compositor.c b/src/compositor.c index a89d2a939..566586332 100644 --- a/src/compositor.c +++ b/src/compositor.c @@ -1443,7 +1443,10 @@ weston_output_finish_frame(struct weston_output *output, uint32_t msecs) int fd; output->frame_time = msecs; - if (output->repaint_needed) { + + if (output->repaint_needed && + compositor->state != WESTON_COMPOSITOR_SLEEPING && + compositor->state != WESTON_COMPOSITOR_OFFSCREEN) { weston_output_repaint(output, msecs); return; }