You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
75 lines
1.2 KiB
75 lines
1.2 KiB
6 years ago
|
void
|
||
|
tcl(Monitor * m)
|
||
|
{
|
||
|
int x, y, h, w, mw, sw, bdw;
|
||
|
unsigned int i, n;
|
||
|
Client * c;
|
||
|
|
||
|
for (n = 0, c = nexttiled(m->clients); c;
|
||
|
c = nexttiled(c->next), n++);
|
||
|
|
||
|
if (n == 0)
|
||
|
return;
|
||
|
|
||
|
c = nexttiled(m->clients);
|
||
|
|
||
|
mw = m->mfact * m->ww;
|
||
|
sw = (m->ww - mw) / 2;
|
||
|
bdw = (2 * c->bw);
|
||
|
resize(c,
|
||
|
n < 3 ? m->wx : m->wx + sw,
|
||
|
m->wy,
|
||
|
n == 1 ? m->ww - bdw : mw - bdw,
|
||
|
m->wh - bdw,
|
||
|
False);
|
||
|
|
||
|
if (--n == 0)
|
||
|
return;
|
||
|
|
||
|
w = (m->ww - mw) / ((n > 1) + 1);
|
||
|
c = nexttiled(c->next);
|
||
|
|
||
|
if (n > 1)
|
||
|
{
|
||
|
x = m->wx + ((n > 1) ? mw + sw : mw);
|
||
|
y = m->wy;
|
||
|
h = m->wh / (n / 2);
|
||
|
|
||
|
if (h < bh)
|
||
|
h = m->wh;
|
||
|
|
||
|
for (i = 0; c && i < n / 2; c = nexttiled(c->next), i++)
|
||
|
{
|
||
|
resize(c,
|
||
|
x,
|
||
|
y,
|
||
|
w - bdw,
|
||
|
(i + 1 == n / 2) ? m->wy + m->wh - y - bdw : h - bdw,
|
||
|
False);
|
||
|
|
||
|
if (h != m->wh)
|
||
|
y = c->y + HEIGHT(c);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
x = (n + 1 / 2) == 1 ? mw : m->wx;
|
||
|
y = m->wy;
|
||
|
h = m->wh / ((n + 1) / 2);
|
||
|
|
||
|
if (h < bh)
|
||
|
h = m->wh;
|
||
|
|
||
|
for (i = 0; c; c = nexttiled(c->next), i++)
|
||
|
{
|
||
|
resize(c,
|
||
|
x,
|
||
|
y,
|
||
|
(i + 1 == (n + 1) / 2) ? w - bdw : w - bdw,
|
||
|
(i + 1 == (n + 1) / 2) ? m->wy + m->wh - y - bdw : h - bdw,
|
||
|
False);
|
||
|
|
||
|
if (h != m->wh)
|
||
|
y = c->y + HEIGHT(c);
|
||
|
}
|
||
|
}
|