From bca077b9279f28c12cced63f0a556c0556f7169c Mon Sep 17 00:00:00 2001 From: A Frederick Christensen Date: Sun, 2 Jun 2024 14:19:24 -0500 Subject: [PATCH] Allow negative coordinates in MonitorRules Monitor/output position (-1, -1) remains as a single indicator value for autoconfigure layout. Additionally, one minor comment typo is corrected. --- config.def.h | 2 ++ dwl.c | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/config.def.h b/config.def.h index 8f498d2..a784eb4 100644 --- a/config.def.h +++ b/config.def.h @@ -36,6 +36,8 @@ static const Layout layouts[] = { }; /* monitors */ +/* (x=-1, y=-1) is reserved as an "autoconfigure" monitor position indicator */ +/* WARNING: negative values other than (-1, -1) cause problems with xwayland clients' menus */ /* NOTE: ALWAYS add a fallback rule, even if you are completely sure it won't be used */ static const MonitorRule monrules[] = { /* name mfact nmaster scale layout rotate/reflect x y */ diff --git a/dwl.c b/dwl.c index 52bfbc8..1ea7f2a 100644 --- a/dwl.c +++ b/dwl.c @@ -927,14 +927,14 @@ createmon(struct wl_listener *listener, void *data) m->fullscreen_bg = wlr_scene_rect_create(layers[LyrFS], 0, 0, fullscreen_bg); wlr_scene_node_set_enabled(&m->fullscreen_bg->node, 0); - /* Adds this to the output layout in the order it was configured in. + /* Adds this to the output layout in the order it was configured. * * The output layout utility automatically adds a wl_output global to the * display, which Wayland clients can see to find out information about the * output (such as DPI, scale factor, manufacturer, etc). */ m->scene_output = wlr_scene_output_create(scene, wlr_output); - if (m->m.x < 0 || m->m.y < 0) + if (m->m.x == -1 && m->m.y == -1) wlr_output_layout_add_auto(output_layout, wlr_output); else wlr_output_layout_add(output_layout, wlr_output, m->m.x, m->m.y);