| tcl.c - sites - public wiki contents of suckless.org | |
| git clone git://git.suckless.org/sites | |
| Log | |
| Files | |
| Refs | |
| --- | |
| tcl.c (1274B) | |
| --- | |
| 1 void | |
| 2 tcl(Monitor * m) | |
| 3 { | |
| 4 int x, y, h, w, mw, sw, bdw; | |
| 5 unsigned int i, n; | |
| 6 Client * c; | |
| 7 | |
| 8 for (n = 0, c = nexttiled(m->clients); c; | |
| 9 c = nexttiled(c->next), n++); | |
| 10 | |
| 11 if (n == 0) | |
| 12 return; | |
| 13 | |
| 14 c = nexttiled(m->clients); | |
| 15 | |
| 16 mw = m->mfact * m->ww; | |
| 17 sw = (m->ww - mw) / 2; | |
| 18 bdw = (2 * c->bw); | |
| 19 resize(c, | |
| 20 n < 3 ? m->wx : m->wx + sw, | |
| 21 m->wy, | |
| 22 n == 1 ? m->ww - bdw : mw - bdw, | |
| 23 m->wh - bdw, | |
| 24 False); | |
| 25 | |
| 26 if (--n == 0) | |
| 27 return; | |
| 28 | |
| 29 w = (m->ww - mw) / ((n > 1) + 1); | |
| 30 c = nexttiled(c->next); | |
| 31 | |
| 32 if (n > 1) | |
| 33 { | |
| 34 x = m->wx + ((n > 1) ? mw + sw : mw); | |
| 35 y = m->wy; | |
| 36 h = m->wh / (n / 2); | |
| 37 | |
| 38 if (h < bh) | |
| 39 h = m->wh; | |
| 40 | |
| 41 for (i = 0; c && i < n / 2; c = nexttiled(c->next), i++) | |
| 42 { | |
| 43 resize(c, | |
| 44 x, | |
| 45 y, | |
| 46 w - bdw, | |
| 47 (i + 1 == n / 2) ? m->wy + m->wh - y - bd… | |
| 48 False); | |
| 49 | |
| 50 if (h != m->wh) | |
| 51 y = c->y + HEIGHT(c); | |
| 52 } | |
| 53 } | |
| 54 | |
| 55 x = (n + 1 / 2) == 1 ? mw : m->wx; | |
| 56 y = m->wy; | |
| 57 h = m->wh / ((n + 1) / 2); | |
| 58 | |
| 59 if (h < bh) | |
| 60 h = m->wh; | |
| 61 | |
| 62 for (i = 0; c; c = nexttiled(c->next), i++) | |
| 63 { | |
| 64 resize(c, | |
| 65 x, | |
| 66 y, | |
| 67 (i + 1 == (n + 1) / 2) ? w - bdw : w - bdw, | |
| 68 (i + 1 == (n + 1) / 2) ? m->wy + m->wh - y - bdw … | |
| 69 False); | |
| 70 | |
| 71 if (h != m->wh) | |
| 72 y = c->y + HEIGHT(c); | |
| 73 } | |
| 74 } |