From 529675b7b04a2598f7701d2e05567d8249ea1cfb Mon Sep 17 00:00:00 2001 From: emersion Date: Mon, 11 Dec 2017 12:14:23 +0100 Subject: Add wlr_output_set_custom_mode --- rootston/output.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'rootston/output.c') diff --git a/rootston/output.c b/rootston/output.c index cf2ffdc3..b2d6554d 100644 --- a/rootston/output.c +++ b/rootston/output.c @@ -263,8 +263,15 @@ static void output_frame_notify(struct wl_listener *listener, void *data) { static void set_mode(struct wlr_output *output, struct roots_output_config *oc) { - struct wlr_output_mode *mode, *best = NULL; int mhz = (int)(oc->mode.refresh_rate * 1000); + + if (wl_list_empty(&output->modes)) { + // Output has no mode, try setting a custom one + wlr_output_set_custom_mode(output, oc->mode.width, oc->mode.height, mhz); + return; + } + + struct wlr_output_mode *mode, *best = NULL; wl_list_for_each(mode, &output->modes, link) { if (mode->width == oc->mode.width && mode->height == oc->mode.height) { if (mode->refresh == mhz) { -- cgit v1.2.3