dwm/patch/swapfocus.c
2021-06-14 08:54:23 +03:00

23 lines
630 B
C

void
swapfocus(const Arg *arg)
{
if (!selmon->sel)
return;
if (selmon->pertag->prevclient[selmon->pertag->curtag] != NULL
&& ISVISIBLE(selmon->pertag->prevclient[selmon->pertag->curtag])) {
focus(selmon->pertag->prevclient[selmon->pertag->curtag]);
restack(selmon->pertag->prevclient[selmon->pertag->curtag]->mon);
}
else {
Client *c = NULL;
for (c = selmon->sel->next; c && !ISVISIBLE(c); c = c->next);
if (!c)
for (c = selmon->clients; c && !ISVISIBLE(c); c = c->next);
if (c) {
focus(c);
restack(selmon);
}
}
}