summaryrefslogtreecommitdiffhomepage
path: root/patch/setborderpx.c
blob: af8c82f33b4cde1530913b7bab12c909ecd2ae9f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
void
setborderpx(const Arg *arg)
{
	Client *c;
	int prev_borderpx = selmon->borderpx;

	if (arg->i == 0)
		selmon->borderpx = borderpx;
	else if (selmon->borderpx + arg->i < 0)
		selmon->borderpx = 0;
	else
		selmon->borderpx += arg->i;

	for (c = selmon->clients; c; c = c->next)
	{
		if (c->bw + arg->i < 0)
			c->bw = selmon->borderpx = 0;
		else
		{
			c->bw = selmon->borderpx;

			if (c->isfloating || !selmon->lt[selmon->sellt]->arrange)
			{
				if (arg->i != 0)
					resize(c, c->x, c->y, c->w-(arg->i*2), c->h-(arg->i*2), 0);
				else if (prev_borderpx > borderpx)
					resize(c, c->x + prev_borderpx - borderpx, c->y + prev_borderpx - borderpx, c->w, c->h, 0);
				else if (prev_borderpx < borderpx)
					resize(c, c->x, c->y, c->w-2*(borderpx - prev_borderpx), c->h-2*(borderpx - prev_borderpx), 0);
			}
		}
	}
	arrange(selmon);
}