aewl

diff tag.c @ 95:5d88952cbf96

implemened distinguishing float/managed geometries of clients (works quite well)
author Anselm R. Garbe <garbeam@wmii.de>
date Tue, 18 Jul 2006 12:36:57 +0200
parents 6efe82c775c9
children 1d125cf2925b
line diff
     1.1 --- a/tag.c	Tue Jul 18 11:45:32 2006 +0200
     1.2 +++ b/tag.c	Tue Jul 18 12:36:57 2006 +0200
     1.3 @@ -43,8 +43,10 @@
     1.4  
     1.5  	arrange = dofloat;
     1.6  	for(c = clients; c; c = c->next) {
     1.7 -		if(c->tags[tsel])
     1.8 +		setgeom(c);
     1.9 +		if(c->tags[tsel]) {
    1.10  			resize(c, True);
    1.11 +		}
    1.12  		else
    1.13  			ban(c);
    1.14  	}
    1.15 @@ -75,6 +77,7 @@
    1.16  		h = sh - bh;
    1.17  
    1.18  	for(i = 0, c = clients; c; c = c->next) {
    1.19 +		setgeom(c);
    1.20  		if(c->tags[tsel]) {
    1.21  			if(c->isfloat) {
    1.22  				higher(c);
    1.23 @@ -82,22 +85,22 @@
    1.24  				continue;
    1.25  			}
    1.26  			if(n == 1) {
    1.27 -				c->x = sx;
    1.28 -				c->y = sy + bh;
    1.29 -				c->w = sw - 2 * c->border;
    1.30 -				c->h = sh - 2 * c->border - bh;
    1.31 +				*c->x = sx;
    1.32 +				*c->y = sy + bh;
    1.33 +				*c->w = sw - 2 * c->border;
    1.34 +				*c->h = sh - 2 * c->border - bh;
    1.35  			}
    1.36  			else if(i == 0) {
    1.37 -				c->x = sx;
    1.38 -				c->y = sy + bh;
    1.39 -				c->w = mw - 2 * c->border;
    1.40 -				c->h = sh - 2 * c->border - bh;
    1.41 +				*c->x = sx;
    1.42 +				*c->y = sy + bh;
    1.43 +				*c->w = mw - 2 * c->border;
    1.44 +				*c->h = sh - 2 * c->border - bh;
    1.45  			}
    1.46  			else {
    1.47 -				c->x = sx + mw;
    1.48 -				c->y = sy + (i - 1) * h + bh;
    1.49 -				c->w = w - 2 * c->border;
    1.50 -				c->h = h - 2 * c->border;
    1.51 +				*c->x = sx + mw;
    1.52 +				*c->y = sy + (i - 1) * h + bh;
    1.53 +				*c->w = w - 2 * c->border;
    1.54 +				*c->h = h - 2 * c->border;
    1.55  			}
    1.56  			resize(c, False);
    1.57  			i++;