From 65e3f3eb1eea35601949499c0cd2c2032773b732 Mon Sep 17 00:00:00 2001 From: Dima Krasner 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 fa76db2..0fe3e97 100644 --- a/dwl.c +++ b/dwl.c @@ -851,7 +851,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; @@ -895,6 +896,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(); @@ -918,7 +927,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); } -- 2.43.0