output: clear buffer created for test

When calling wlr_output_test an empty buffer might be created. This implicitly
changes the pending state of the output. Ensure that such a change is only
temporarily and clear such an empty buffer before returning the test result.
This commit is contained in:
Roman Gilg 2022-02-20 17:47:15 +01:00 committed by Simon Ser
parent db6661502d
commit cff4abc5b1
1 changed files with 10 additions and 1 deletions

View File

@ -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) {