diff options
author | Simon Ser <contact@emersion.fr> | 2020-03-05 13:24:46 +0100 |
---|---|---|
committer | Drew DeVault <sir@cmpwn.com> | 2020-03-06 21:35:00 +0100 |
commit | a4c7c6db097c8f493a88a1f0ef5c6f0c78f70e01 (patch) | |
tree | 237e79ab0da1218cb4f4eaaecf8159d9fdec5174 | |
parent | 4bb391c896738c369b0b375b9845460747848053 (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.c | 2 |
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; } |