X-Git-Url: https://git.xinqibao.xyz/dwm.git/blobdiff_plain/0b80d1842d1c921a8a94c11fd9222dad9311cc97..e9cfae7aba1c8eafd827854705bf0d11d2de2dfb:/view.c?ds=inline diff --git a/view.c b/view.c index 1ac3141..503f1c2 100644 --- a/view.c +++ b/view.c @@ -149,7 +149,7 @@ focusprev(Arg *arg) { void incnmaster(Arg *arg) { - if(nmaster + arg->i < 1) + if((nmaster + arg->i < 1) || (wah / (nmaster + arg->i) < bh)) return; nmaster += arg->i; arrange(); @@ -248,7 +248,7 @@ view(Arg *arg) { void zoom(Arg *arg) { - unsigned int i, n; + unsigned int n; Client *c; if(!sel) @@ -259,22 +259,15 @@ zoom(Arg *arg) { } for(n = 0, c = nexttiled(clients); c; c = nexttiled(c->next)) n++; - if(n <= nmaster || (arrange == dofloat)) - return; - - for(c = nexttiled(clients), i = 0; c && (c != sel) && i < nmaster; c = nexttiled(c->next)) - i++; - if(c == sel && i < nmaster) - for(; c && i < nmaster; c = nexttiled(c->next)) - i++; - if(!c) - return; - detach(c); - if(clients) - clients->prev = c; - c->next = clients; - clients = c; - focus(c); - arrange(); + c = sel; + if((arrange != dofloat) && c != nexttiled(clients)) { + detach(c); + if(clients) + clients->prev = c; + c->next = clients; + clients = c; + focus(c); + arrange(); + } }