compositor: don't schedule idle_repaint from calls to repaint

wlsc_output_repaint may call wlsc_surface_damage indirectly through
wlsc_output_set_cursor. If this happens in the call made from repaint,
one ends up with repaint being called from both idle_repaint and
wlsc_output_finish_frame.

Fix this by setting output->repaint_scheduled to 1 before calling
wlsc_output_repaint in the function repaint.

[krh] Edited to just only clear repaint_scheduled, when we no longer have
a repaint scheduled.

Signed-off-by: Ander Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com>
diff --git a/compositor/compositor.c b/compositor/compositor.c
index c1765b4..17930cb 100644
--- a/compositor/compositor.c
+++ b/compositor/compositor.c
@@ -997,10 +997,10 @@
 		output->pending_scanout_buffer = NULL;
 	}
 
-	output->repaint_scheduled = 0;
-
 	if (output->repaint_needed)
 		repaint(output, msecs);
+	else
+		output->repaint_scheduled = 0;
 }
 
 WL_EXPORT void