From: Michael D. Lowis Date: Sun, 29 Mar 2020 02:56:29 +0000 (-0400) Subject: allow joining last column while it's focused X-Git-Url: https://git.mdlowis.com/?a=commitdiff_plain;h=3295735a68bc7dd06213bd7f644b3c6afa48621b;p=proto%2Fanvil.git allow joining last column while it's focused --- diff --git a/mons.c b/mons.c index 14d3bf2..fca94b6 100644 --- a/mons.c +++ b/mons.c @@ -254,28 +254,34 @@ void mons_colsplit(void) void mons_coljoin(void) { Monitor* mon = pickmon(); - Column* col = pickcol(mon->cspace->columns, PtrX); - if (col->next) + Column* dest = pickcol(mon->cspace->columns, PtrX); + Column* dead = dest->next; + if (!dead) + { + dead = dest; + dest = list_prev(mon->cspace->columns, dead); + } + + if (dest && dead) { /* add the clients to the current col */ - for (Client* c = col->next->clients; c;) + for (Client* c = dead->clients; c;) { Client* next = c->next; - if (col->focused) + if (dest->focused) { - monocled_add(mon, col, c); + monocled_add(mon, dest, c); } else { - stacked_add(mon, col, c); + stacked_add(mon, dest, c); } c = next; } - Column* dead = col->next; - col->next = dead->next; - col->width += dead->width; + dest->next = dead->next; + dest->width += dead->width; free(dead); - adjust_all(col, 0); + adjust_all(dest, 0); } }