diff --git a/dwl.c b/dwl.c index 14d377a..33c786e 100644 --- a/dwl.c +++ b/dwl.c @@ -1914,7 +1914,18 @@ mapnotify(struct wl_listener *listener, void *data) c->geom.height += 2 * c->bw; /* Insert this client into client lists. */ - wl_list_insert(&clients, &c->link); + i = 0; + wl_list_for_each(w, &clients, link) { + if (!VISIBLEON(w, selmon) || c->isfloating) + continue; + p = w; + if (++i >= selmon->nmaster) + break; + } + if (i > 0) + wl_list_insert(&p->link, &c->link); + else + wl_list_insert(&clients, &c->link); wl_list_insert(&fstack, &c->flink); /* Set initial monitor, tags, floating status, and focus: