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;