From 174919ec5342af19504661b30359068af5fcf1c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Leonardo=20Hern=C3=A1ndez=20Hern=C3=A1ndez?= Date: Thu, 18 Aug 2022 16:51:15 -0500 Subject: [PATCH] set monitor for clients that don't have one on monitor creation --- dwl.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/dwl.c b/dwl.c index 212afd1..cf7d307 100644 --- a/dwl.c +++ b/dwl.c @@ -896,6 +896,7 @@ createmon(struct wl_listener *listener, void *data) * monitor) becomes available. */ struct wlr_output *wlr_output = data; const MonitorRule *r; + Client *c; Monitor *m = wlr_output->data = ecalloc(1, sizeof(*m)); m->wlr_output = wlr_output; @@ -944,15 +945,10 @@ createmon(struct wl_listener *listener, void *data) m->scene_output = wlr_scene_output_create(scene, wlr_output); wlr_output_layout_add_auto(output_layout, wlr_output); - /* If length == 1 we need update selmon. - * Maybe it will change in run(). */ - if (wl_list_length(&mons) == 1) { - Client *c; - selmon = m; - /* If there is any client, set c->mon to this monitor */ - wl_list_for_each(c, &clients, link) + /* If there are clients without monitor set this as their monitor */ + wl_list_for_each(c, &clients, link) + if (!c->mon) setmon(c, m, c->tags); - } } void