Reversed direction of keys for switch between monitors to match the physical arrangem...
[dwm] / tcl.c
CommitLineData
03330c08
AT
1void
2tcl(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 - bdw : h - bdw,
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 : h - bdw,
69 False);
70
71 if (h != m->wh)
72 y = c->y + HEIGHT(c);
73 }
74}