diff options
Diffstat (limited to 'dwl-patches/patches/right/right.patch')
-rw-r--r-- | dwl-patches/patches/right/right.patch | 50 |
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 + |