bstackhoriz.c - sites - public wiki contents of suckless.org
(HTM) git clone git://git.suckless.org/sites
(DIR) Log
(DIR) Files
(DIR) Refs
---
bstackhoriz.c (824B)
---
1 static void
2 bstackhoriz(Monitor *m) {
3 int x, y, h, w, mh;
4 unsigned int i, n;
5 Client *c;
6
7 for(n = 0, c = nexttiled(m->clients); c; c = nexttiled(c->next), n++);
8 if(n == 0)
9 return;
10 /* master */
11 c = nexttiled(m->clients);
12 mh = m->mfact * m->wh;
13 resize(c, m->wx, m->wy, m->ww - 2 * c->bw, (n == 1 ? m->wh : mh) - 2 * c->bw, False);
14 if(--n == 0)
15 return;
16 /* tile stack */
17 x = m->wx;
18 y = (m->wy + mh > c->y + c->h) ? c->y + c->h + 2 * c->bw : m->wy + mh;
19 w = m->ww;
20 h = (m->wy + mh > c->y + c->h) ? m->wy + m->wh - y : m->wh - mh;
21 h /= n;
22 if(h < bh)
23 h = m->wh;
24 for(i = 0, c = nexttiled(c->next); c; c = nexttiled(c->next), i++) {
25 resize(c, x, y, w - 2 * c->bw, /* remainder */ ((i + 1 == n)
26 ? m->wy + m->wh - y - 2 * c->bw : h - 2 * c->bw), False);
27 if(h != m->wh)
28 y = c->y + HEIGHT(c);
29 }
30 }