aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--types/output/output.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/types/output/output.c b/types/output/output.c
index 76c9ed9e..d6f8f97a 100644
--- a/types/output/output.c
+++ b/types/output/output.c
@@ -715,6 +715,15 @@ bool wlr_output_commit(struct wlr_output *output) {
wlr_output_schedule_done(output);
}
+ // Destroy the swapchains when an output is disabled
+ if ((output->pending.committed & WLR_OUTPUT_STATE_ENABLED) &&
+ !output->pending.enabled) {
+ wlr_swapchain_destroy(output->swapchain);
+ output->swapchain = NULL;
+ wlr_swapchain_destroy(output->cursor_swapchain);
+ output->cursor_swapchain = NULL;
+ }
+
// Unset the front-buffer when a new buffer will replace it or when the
// output is getting disabled
if ((output->pending.committed & WLR_OUTPUT_STATE_BUFFER) ||