fixing remaining space calculation ecd9c3e2
Anselm R. Garbe · 2007-05-09 10:11 1 file(s) · +5 −5
layout.c +5 −5
15 15
16 16
static void
17 17
tile(void) {
18 -
	unsigned int i, n, nx, ny, nw, nh, mw, mh, tw, th;
18 +
	unsigned int i, n, nx, ny, nw, nh, mw, mh, tw, th, remain;
19 19
	Client *c;
20 20
21 21
	for(n = 0, c = nexttiled(clients); c; c = nexttiled(c->next))
24 24
	mh = (n > nmaster) ? wah / nmaster : wah / (n > 0 ? n : 1);
25 25
	mw = (n > nmaster) ? (waw * masterw) / 1000 : waw;
26 26
	th = (n > nmaster) ? wah / (n - nmaster) : 0;
27 +
	remain = (n > nmaster) ? wah - th * (n - nmaster) : 0;
27 28
	tw = waw - mw;
28 29
29 30
	for(i = 0, c = clients; c; c = c->next)
46 47
				nw = tw - 2 * c->border;
47 48
				if(th > 2 * c->border) {
48 49
					ny += (i - nmaster) * th;
49 -
					if(i == n - 1)
50 -
						nh = wah - ny - 2 * c->border;
51 -
					else
52 -
						nh = th - 2 * c->border;
50 +
					nh = th - 2 * c->border;
51 +
					if (i == n - 1)
52 +
						nh += remain;
53 53
				}
54 54
				else /* fallback if th <= 2 * c->border */
55 55
					nh = wah - 2 * c->border;