diff options
| author | Anselm R. Garbe <arg@suckless.org> | 2007-05-24 15:40:07 +0200 | 
|---|---|---|
| committer | Anselm R. Garbe <arg@suckless.org> | 2007-05-24 15:40:07 +0200 | 
| commit | e45b3ced673e2de583c53e084cc071039d64ba4e (patch) | |
| tree | 4cb6b9eac36d265dbb27bcdfce5aba8b9a9238b6 | |
| parent | 5a9af492ae9fc6d28dc80bf3599d7eebda9136dd (diff) | |
calculating the remainder for master and stack area correctly
| -rw-r--r-- | layout.c | 15 | 
1 files changed, 9 insertions, 6 deletions
| @@ -15,7 +15,7 @@ static unsigned int nmaster = NMASTER;  static void  tile(void) { -	unsigned int i, n, nx, ny, nw, nh, mw, mh, tw, th, remainder; +	unsigned int i, n, nx, ny, nw, nh, mw, mh, tw, th;  	Client *c;  	for(n = 0, c = nexttiled(clients); c; c = nexttiled(c->next)) @@ -24,7 +24,6 @@ tile(void) {  	mh = (n > nmaster) ? wah / nmaster : wah / (n > 0 ? n : 1);  	mw = (n > nmaster) ? (waw * masterw) / 1000 : waw;  	th = (n > nmaster) ? wah / (n - nmaster) : 0; -	remainder = (n > nmaster) ? wah - th * (n - nmaster) : 0;  	tw = waw - mw;  	for(i = 0, c = clients; c; c = c->next) @@ -40,16 +39,20 @@ tile(void) {  			if(i < nmaster) {  				ny += i * mh;  				nw = mw - 2 * c->border; -				nh = mh - 2 * c->border; +				nh = mh; +				if(i + 1 == nmaster) /* remainder */ +					nh = wah - mh * i; +				nh -= 2 * c->border;  			}  			else {  /* tile window */  				nx += mw;  				nw = tw - 2 * c->border;  				if(th > 2 * c->border) {  					ny += (i - nmaster) * th; -					nh = th - 2 * c->border; -					if (i == n - 1) -						nh += remainder; +					nh = th; +					if(i + 1 == n) /* remainder */ +						nh = wah - th * (i - nmaster); +					nh -= 2 * c->border;  				}  				else /* fallback if th <= 2 * c->border */  					nh = wah - 2 * c->border; | 
