summaryrefslogtreecommitdiffstats
path: root/dwl-patches/patches/right/right.patch
diff options
context:
space:
mode:
Diffstat (limited to 'dwl-patches/patches/right/right.patch')
-rw-r--r--dwl-patches/patches/right/right.patch50
1 files changed, 50 insertions, 0 deletions
diff --git a/dwl-patches/patches/right/right.patch b/dwl-patches/patches/right/right.patch
new file mode 100644
index 0000000..baf8eeb
--- /dev/null
+++ b/dwl-patches/patches/right/right.patch
@@ -0,0 +1,50 @@
+From 9d4b0ebb95381525351b05aad6a98f1747ae96e2 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 d48bf40..fb795e1 100644
+--- a/dwl.c
++++ b/dwl.c
+@@ -923,7 +923,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;
+@@ -967,6 +968,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();
+
+@@ -990,7 +999,7 @@ createmon(struct wl_listener *listener, void *data)
+ */
+ m->scene_output = wlr_scene_output_create(scene, wlr_output);
+ if (m->m.x == -1 && m->m.y == -1)
+- 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);
+ }
+--
+2.43.0
+