|
|
- Client *
- prevt(Client *c)
- {
- Client *p, *r;
-
- for (p = selmon->clients, r = NULL; p && p != c; p = p->next)
- if (!p->isfloating && ISVISIBLE(p))
- r = p;
- return r;
- }
-
- void
- pushup(const Arg *arg)
- {
- Client *sel = selmon->sel, *c;
-
- if (!sel || sel->isfloating)
- return;
- if ((c = prevt(sel)) && c != nexttiled(selmon->clients)) {
- detach(sel);
- sel->next = c;
- for (c = selmon->clients; c->next != sel->next; c = c->next);
- c->next = sel;
- }
- focus(sel);
- arrange(selmon);
- }
-
- void
- pushdown(const Arg *arg)
- {
- Client *sel = selmon->sel, *c;
-
- if (!sel || sel->isfloating || sel == nexttiled(selmon->clients))
- return;
- if ((c = nexttiled(sel->next))) {
- detach(sel);
- sel->next = c->next;
- c->next = sel;
- }
- focus(sel);
- arrange(selmon);
- }
|