summaryrefslogtreecommitdiff
path: root/patch/swapfocus.c
blob: ec85c2e37ddda657604209386146219ac4111cc4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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);
       }
   }
}