fixing remaining space calculation
ecd9c3e2
1 file(s) · +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; |
|