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
diff --git a/src/compositor.c b/src/compositor.c
index 34d9024..7e2a394 100644
--- a/src/compositor.c
+++ b/src/compositor.c
@@ -1443,7 +1443,10 @@
 	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;
 	}