aboutsummaryrefslogtreecommitdiff
path: root/rootston/output.c
diff options
context:
space:
mode:
authoremersion <contact@emersion.fr>2017-12-11 12:14:23 +0100
committeremersion <contact@emersion.fr>2017-12-11 12:14:23 +0100
commit529675b7b04a2598f7701d2e05567d8249ea1cfb (patch)
treedbed215e4f235d2458cbab2bbff512dcad0f11a2 /rootston/output.c
parent301850ec5d1a65aed87734583ed0868694f1913a (diff)
Add wlr_output_set_custom_mode
Diffstat (limited to 'rootston/output.c')
-rw-r--r--rootston/output.c9
1 files changed, 8 insertions, 1 deletions
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) {