@ -38,6 +38,13 @@ reorder()
clients = newclients ;
clients = newclients ;
}
}
static Client *
nexttiled ( Client * c )
{
for ( c = getnext ( c - > next ) ; c & & c - > isfloat ; c = getnext ( c - > next ) ) ;
return c ;
}
/* extern */
/* extern */
void ( * arrange ) ( Arg * ) = DEFMODE ;
void ( * arrange ) ( Arg * ) = DEFMODE ;
@ -82,8 +89,8 @@ dotile(Arg *arg)
maximized = False ;
maximized = False ;
w = sw - mw ;
w = sw - mw ;
for ( n = 0 , c = clients ; c & & ! c - > isfloat ; c = c - > next )
for ( n = 0 , c = clients ; c ; c = c - > next )
if ( isvisible ( c ) )
if ( isvisible ( c ) & & ! c - > isfloat )
n + + ;
n + + ;
if ( n > 1 )
if ( n > 1 )
@ -186,8 +193,8 @@ resizecol(Arg *arg)
unsigned int n ;
unsigned int n ;
Client * c ;
Client * c ;
for ( n = 0 , c = clients ; c & & ! c - > isfloat ; c = c - > next )
for ( n = 0 , c = clients ; c ; c = c - > next )
if ( isvisible ( c ) )
if ( isvisible ( c ) & & ! c - > isfloat )
n + + ;
n + + ;
if ( ! sel | | sel - > isfloat | | n < 2 | | ( arrange ! = dotile ) | | maximized )
if ( ! sel | | sel - > isfloat | | n < 2 | | ( arrange ! = dotile ) | | maximized )
return ;
return ;
@ -311,14 +318,14 @@ zoom(Arg *arg)
unsigned int n ;
unsigned int n ;
Client * c ;
Client * c ;
for ( n = 0 , c = clients ; c & & ! c - > isfloat ; c = c - > next )
for ( n = 0 , c = clients ; c ; c = c - > next )
if ( isvisible ( c ) )
if ( isvisible ( c ) & & ! c - > isfloat )
n + + ;
n + + ;
if ( ! sel | | sel - > isfloat | | n < 2 | | ( arrange ! = dotile ) | | maximized )
if ( ! sel | | sel - > isfloat | | n < 2 | | ( arrange ! = dotile ) | | maximized )
return ;
return ;
if ( ( c = sel ) = = get next( clients ) )
if ( ( c = sel ) = = nexttiled ( clients ) )
if ( ! ( c = get next( c - > next ) ) | | c - > isfloat )
if ( ! ( c = nexttiled ( c ) ) )
return ;
return ;
detach ( c ) ;
detach ( c ) ;
c - > next = clients ;
c - > next = clients ;