aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--types/output/output.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/types/output/output.c b/types/output/output.c
index 0062013f..1c0241fe 100644
--- a/types/output/output.c
+++ b/types/output/output.c
@@ -639,6 +639,9 @@ static bool output_basic_test(struct wlr_output *output) {
}
bool wlr_output_test(struct wlr_output *output) {
+ bool had_buffer = output->pending.committed & WLR_OUTPUT_STATE_BUFFER;
+ bool success;
+
if (!output_basic_test(output)) {
return false;
}
@@ -648,7 +651,13 @@ bool wlr_output_test(struct wlr_output *output) {
if (!output->impl->test) {
return true;
}
- return output->impl->test(output);
+
+ success = output->impl->test(output);
+
+ if (!had_buffer) {
+ output_clear_back_buffer(output);
+ }
+ return success;
}
bool wlr_output_commit(struct wlr_output *output) {