dwl-patches/right/right.patch
2024-01-01 23:40:54 -06:00

48 lines
1.5 KiB
Diff

From ae70de3793109624ae7f8cdfebd214ef3e883f79 Mon Sep 17 00:00:00 2001
From: Dima Krasner <dima@dimakrasner.com>
Date: Thu, 21 Jul 2022 21:14:14 +0300
Subject: [PATCH] extend the display to the right
---
dwl.c | 13 +++++++++++--
1 file changed, 11 insertions(+), 2 deletions(-)
diff --git a/dwl.c b/dwl.c
index bbb27e4..2ae003e 100644
--- a/dwl.c
+++ b/dwl.c
@@ -859,7 +859,8 @@ createmon(struct wl_listener *listener, void *data)
const MonitorRule *r;
size_t i;
struct wlr_output_state state;
- Monitor *m;
+ Monitor *om, *m;
+ int max_x = 0, max_x_y = 0, width, height;
if (!wlr_output_init_render(wlr_output, alloc, drw))
return;
@@ -901,6 +902,14 @@ createmon(struct wl_listener *listener, void *data)
wlr_output_commit_state(wlr_output, &state);
wlr_output_state_finish(&state);
+ wl_list_for_each(om, &mons, link) {
+ wlr_output_effective_resolution(om->wlr_output, &width, &height);
+ if (om->m.x + width > max_x) {
+ max_x = om->m.x + width;
+ max_x_y = om->m.y;
+ }
+ }
+
wl_list_insert(&mons, &m->link);
printstatus();
@@ -924,7 +933,7 @@ createmon(struct wl_listener *listener, void *data)
*/
m->scene_output = wlr_scene_output_create(scene, wlr_output);
if (m->m.x < 0 || m->m.y < 0)
- wlr_output_layout_add_auto(output_layout, wlr_output);
+ wlr_output_layout_add(output_layout, wlr_output, max_x, max_x_y);
else
wlr_output_layout_add(output_layout, wlr_output, m->m.x, m->m.y);
strncpy(m->ltsymbol, m->lt[m->sellt]->symbol, LENGTH(m->ltsymbol));