diff --git a/types/wlr_output.c b/types/wlr_output.c index 6daac31c..5e7f9288 100644 --- a/types/wlr_output.c +++ b/types/wlr_output.c @@ -89,8 +89,11 @@ bool wlr_output_set_mode(struct wlr_output *output, struct wlr_output_mode *mode if (!output->impl || !output->impl->set_mode) { return false; } - wlr_output_update_matrix(output); - return output->impl->set_mode(output->state, mode); + bool result = output->impl->set_mode(output->state, mode); + if (result) { + wlr_output_update_matrix(output); + } + return result; } void wlr_output_transform(struct wlr_output *output,