aewl
diff view.c @ 430:1e8aba00964e
no, reodering floating clients definately breaks the manage() policy which attaches all clients zoomed (otherwise higher-weight clients couldn't be attached zoomed, which sucks)
author | Anselm R. Garbe <arg@10kloc.org> |
---|---|
date | Wed, 06 Sep 2006 09:13:31 +0200 |
parents | a31de8605f72 |
children | a6b8994af164 |
line diff
1.1 --- a/view.c Tue Sep 05 19:26:34 2006 +0200 1.2 +++ b/view.c Wed Sep 06 09:13:31 2006 +0200 1.3 @@ -38,6 +38,13 @@ 1.4 clients = newclients; 1.5 } 1.6 1.7 +static Client * 1.8 +nexttiled(Client *c) 1.9 +{ 1.10 + for(c = getnext(c->next); c && c->isfloat; c = getnext(c->next)); 1.11 + return c; 1.12 +} 1.13 + 1.14 /* extern */ 1.15 1.16 void (*arrange)(Arg *) = DEFMODE; 1.17 @@ -82,8 +89,8 @@ 1.18 maximized = False; 1.19 1.20 w = sw - mw; 1.21 - for(n = 0, c = clients; c && !c->isfloat; c = c->next) 1.22 - if(isvisible(c)) 1.23 + for(n = 0, c = clients; c; c = c->next) 1.24 + if(isvisible(c) && !c->isfloat) 1.25 n++; 1.26 1.27 if(n > 1) 1.28 @@ -186,8 +193,8 @@ 1.29 unsigned int n; 1.30 Client *c; 1.31 1.32 - for(n = 0, c = clients; c && !c->isfloat; c = c->next) 1.33 - if(isvisible(c)) 1.34 + for(n = 0, c = clients; c; c = c->next) 1.35 + if(isvisible(c) && !c->isfloat) 1.36 n++; 1.37 if(!sel || sel->isfloat || n < 2 || (arrange != dotile) || maximized) 1.38 return; 1.39 @@ -311,14 +318,14 @@ 1.40 unsigned int n; 1.41 Client *c; 1.42 1.43 - for(n = 0, c = clients; c && !c->isfloat; c = c->next) 1.44 - if(isvisible(c)) 1.45 + for(n = 0, c = clients; c; c = c->next) 1.46 + if(isvisible(c) && !c->isfloat) 1.47 n++; 1.48 if(!sel || sel->isfloat || n < 2 || (arrange != dotile) || maximized) 1.49 return; 1.50 1.51 - if((c = sel) == getnext(clients)) 1.52 - if(!(c = getnext(c->next)) || c->isfloat) 1.53 + if((c = sel) == nexttiled(clients)) 1.54 + if(!(c = nexttiled(c))) 1.55 return; 1.56 detach(c); 1.57 c->next = clients;