X-Git-Url: https://jasonwoof.com/gitweb/?a=blobdiff_plain;f=view.c;h=9bd75846f7f32f8bd9cb6c1d61ceb2a9c82c4161;hb=51f6405b0d7a9ba34696cafbc08303b1e5b14cfa;hp=2143d70bde04da6ab4078268b047de7999ee0add;hpb=06bae9dfb7902c97877f3493cf4b489ccf531089;p=dwm.git diff --git a/view.c b/view.c index 2143d70..9bd7584 100644 --- a/view.c +++ b/view.c @@ -32,17 +32,17 @@ pop(Client *c) { static void swap(Client *c1, Client *c2) { Client tmp = *c1; - Client *cp = c1->prev; - Client *cn = c1->next; + Client *c1p = c1->prev; + Client *c1n = c1->next; + Client *c2p = c2->prev; + Client *c2n = c2->next; *c1 = *c2; - c1->prev = cp; - c1->next = cn; - cp = c2->prev; - cn = c2->next; *c2 = tmp; - c2->prev = cp; - c2->next = cn; + c1->prev = c1p; + c1->next = c1n; + c2->prev = c2p; + c2->next = c2n; } static void @@ -192,7 +192,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(); @@ -302,10 +302,13 @@ zoom(Arg *arg) { } for(n = 0, c = nexttiled(clients); c; c = nexttiled(c->next)) n++; - if(n <= nmaster || (arrange == dofloat)) - return; - if(ismaster((c = sel))) { + c = sel; + if(arrange == dofloat) + return; + else if(n <= nmaster) + pop(c); + else if(ismaster(sel)) { if(!(c = topofstack())) return; swap(c, sel);