summaryrefslogtreecommitdiffhomepage
path: root/patch/transferall.c
blob: fe12699755ee428f939dbeae330899cf924a0ff8 (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
void
transferall(const Arg *arg)
{
	Client *c, *n = selmon->clients, *attachfrom = NULL;
	int i = 0, nstackclients = 0;
	while (n) {
		c = n;
		n = c->next;
		if (!ISVISIBLE(c) || c->isfloating) continue;
		if (i >= selmon->nmaster) {
			detach(c);
			if (!attachfrom) {
				attach(c);
			} else {
				c->next = attachfrom->next;
				attachfrom->next = c;
			}
			attachfrom = c;
			nstackclients++;
		}
		i++;
	}
	selmon->nmaster = nstackclients;
	arrange(selmon);
}