From cbb2781fed7944dae680a66a35443f5b1a678ec7 Mon Sep 17 00:00:00 2001 From: Ivan Molodetskikh Date: Wed, 25 Sep 2019 11:06:08 +0300 Subject: [PATCH] output: add block_idle_frame --- include/wlr/types/wlr_output.h | 2 ++ types/wlr_output.c | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/include/wlr/types/wlr_output.h b/include/wlr/types/wlr_output.h index 281f7daf..01e71206 100644 --- a/include/wlr/types/wlr_output.h +++ b/include/wlr/types/wlr_output.h @@ -145,6 +145,8 @@ struct wlr_output { struct wl_listener display_destroy; void *data; + + bool block_idle_frame; }; struct wlr_output_event_precommit { diff --git a/types/wlr_output.c b/types/wlr_output.c index 189b175c..7ac54083 100644 --- a/types/wlr_output.c +++ b/types/wlr_output.c @@ -541,7 +541,8 @@ void wlr_output_send_frame(struct wlr_output *output) { static void schedule_frame_handle_idle_timer(void *data) { struct wlr_output *output = data; output->idle_frame = NULL; - if (!output->frame_pending && output->impl->schedule_frame) { + if (!output->frame_pending && output->impl->schedule_frame + && !output->block_idle_frame) { // Ask the backend to send a frame event when appropriate if (output->impl->schedule_frame(output)) { output->frame_pending = true;