diff options
| author | Furkan Sahin <furkan-dev@proton.me> | 2020-03-05 13:44:34 +0100 |
|---|---|---|
| committer | Furkan Sahin <furkan-dev@proton.me> | 2020-03-05 13:44:34 +0100 |
| commit | bd5eaa5b9722d8af909dfddff652aa8c1b337db1 (patch) | |
| tree | e7842f6c9a5c00a16565699ee6f0f6292234854d | |
| parent | 4cd82455a91bc2f5bf73be771c0ff7148f94a75c (diff) | |
Only schedule a frame if client has requested a frame callback
When a client hasn't damaged its surface, we only need to schedule an
output frame if the client has requested a frame callback.
| -rw-r--r-- | sway/desktop/output.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/sway/desktop/output.c b/sway/desktop/output.c index 16c6fc54..ab28f25c 100644 --- a/sway/desktop/output.c +++ b/sway/desktop/output.c @@ -681,8 +681,10 @@ static void damage_surface_iterator(struct sway_output *output, struct sway_view wlr_output_damage_add_box(output->damage, &box); } - output->surface_needs_frame = true; - wlr_output_schedule_frame(output->wlr_output); + if (!wl_list_empty(&surface->current.frame_callback_list)) { + output->surface_needs_frame = true; + wlr_output_schedule_frame(output->wlr_output); + } } void output_damage_surface(struct sway_output *output, double ox, double oy, |
