diff --git a/types/wlr_output.c b/types/wlr_output.c index f49d48e3..a8c86771 100644 --- a/types/wlr_output.c +++ b/types/wlr_output.c @@ -159,6 +159,9 @@ bool wlr_output_set_mode(struct wlr_output *output, if (!output->impl || !output->impl->set_mode) { return false; } + if (output->current_mode == mode) { + return true; + } return output->impl->set_mode(output, mode); } @@ -167,6 +170,10 @@ bool wlr_output_set_custom_mode(struct wlr_output *output, int32_t width, if (!output->impl || !output->impl->set_custom_mode) { return false; } + if (output->width == width && output->height == height && + output->refresh == refresh) { + return true; + } return output->impl->set_custom_mode(output, width, height, refresh); }