aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Ser <contact@emersion.fr>2020-03-05 13:24:46 +0100
committerDrew DeVault <sir@cmpwn.com>2020-03-06 21:35:00 +0100
commita4c7c6db097c8f493a88a1f0ef5c6f0c78f70e01 (patch)
tree237e79ab0da1218cb4f4eaaecf8159d9fdec5174
parent4bb391c896738c369b0b375b9845460747848053 (diff)
output: make wlr_output_schedule_frame set output->needs_frame
This way, wlr_output_schedule_frame will always be followed by a wlr_output_commit. This forces the compositor to render an extra frame before stopping the rendering loop. To test, run wleird's frame-callback [1], make sure it's the only visible client on the output and check the interval between frame events is the output's refresh period instead of zero. [1]: https://github.com/emersion/wleird/blob/master/frame-callback.c Closes: https://github.com/swaywm/wlroots/issues/2051
-rw-r--r--types/wlr_output.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/types/wlr_output.c b/types/wlr_output.c
index 57814111..a1777fbe 100644
--- a/types/wlr_output.c
+++ b/types/wlr_output.c
@@ -621,6 +621,8 @@ static void schedule_frame_handle_idle_timer(void *data) {
}
void wlr_output_schedule_frame(struct wlr_output *output) {
+ wlr_output_update_needs_frame(output);
+
if (output->frame_pending || output->idle_frame != NULL) {
return;
}