comparison 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
comparison
equal deleted inserted replaced
429:a31de8605f72 430:1e8aba00964e
36 tail = newclients = c; 36 tail = newclients = c;
37 } 37 }
38 clients = newclients; 38 clients = newclients;
39 } 39 }
40 40
41 static Client *
42 nexttiled(Client *c)
43 {
44 for(c = getnext(c->next); c && c->isfloat; c = getnext(c->next));
45 return c;
46 }
47
41 /* extern */ 48 /* extern */
42 49
43 void (*arrange)(Arg *) = DEFMODE; 50 void (*arrange)(Arg *) = DEFMODE;
44 51
45 void 52 void
80 Client *c; 87 Client *c;
81 88
82 maximized = False; 89 maximized = False;
83 90
84 w = sw - mw; 91 w = sw - mw;
85 for(n = 0, c = clients; c && !c->isfloat; c = c->next) 92 for(n = 0, c = clients; c; c = c->next)
86 if(isvisible(c)) 93 if(isvisible(c) && !c->isfloat)
87 n++; 94 n++;
88 95
89 if(n > 1) 96 if(n > 1)
90 h = (sh - bh) / (n - 1); 97 h = (sh - bh) / (n - 1);
91 else 98 else
184 resizecol(Arg *arg) 191 resizecol(Arg *arg)
185 { 192 {
186 unsigned int n; 193 unsigned int n;
187 Client *c; 194 Client *c;
188 195
189 for(n = 0, c = clients; c && !c->isfloat; c = c->next) 196 for(n = 0, c = clients; c; c = c->next)
190 if(isvisible(c)) 197 if(isvisible(c) && !c->isfloat)
191 n++; 198 n++;
192 if(!sel || sel->isfloat || n < 2 || (arrange != dotile) || maximized) 199 if(!sel || sel->isfloat || n < 2 || (arrange != dotile) || maximized)
193 return; 200 return;
194 201
195 if(sel == getnext(clients)) { 202 if(sel == getnext(clients)) {
309 zoom(Arg *arg) 316 zoom(Arg *arg)
310 { 317 {
311 unsigned int n; 318 unsigned int n;
312 Client *c; 319 Client *c;
313 320
314 for(n = 0, c = clients; c && !c->isfloat; c = c->next) 321 for(n = 0, c = clients; c; c = c->next)
315 if(isvisible(c)) 322 if(isvisible(c) && !c->isfloat)
316 n++; 323 n++;
317 if(!sel || sel->isfloat || n < 2 || (arrange != dotile) || maximized) 324 if(!sel || sel->isfloat || n < 2 || (arrange != dotile) || maximized)
318 return; 325 return;
319 326
320 if((c = sel) == getnext(clients)) 327 if((c = sel) == nexttiled(clients))
321 if(!(c = getnext(c->next)) || c->isfloat) 328 if(!(c = nexttiled(c)))
322 return; 329 return;
323 detach(c); 330 detach(c);
324 c->next = clients; 331 c->next = clients;
325 clients->prev = c; 332 clients->prev = c;
326 clients = c; 333 clients = c;