summaryrefslogtreecommitdiffhomepage
path: root/patch/cyclelayouts.c
blob: bd33bfe8253e554427f3583b41c439552bb106f1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
void
cyclelayout(const Arg *arg)
{
	Layout *l;
	for (l = (Layout *)layouts; l != selmon->lt[selmon->sellt]; l++);
	if (arg->i > 0) {
		if (l->symbol && (l + 1)->symbol)
			setlayout(&((Arg) { .v = (l + 1) }));
		else
			setlayout(&((Arg) { .v = layouts }));
	} else {
		if (l != layouts && (l - 1)->symbol)
			setlayout(&((Arg) { .v = (l - 1) }));
		else
			setlayout(&((Arg) { .v = &layouts[LENGTH(layouts) - 2] }));
	}
}