diff --git a/src/dwm.c b/src/dwm.c index 12ab7ff..11f2eeb 100644 --- a/src/dwm.c +++ b/src/dwm.c @@ -1011,48 +1011,68 @@ void movemouse(__attribute__((unused)) const Arg *arg) void movestack(const Arg *arg) { - Client *c = NULL, *p = NULL, *pc = NULL, *i; + Client *c = NULL, *p = NULL, *pc = NULL, *i = NULL; - if(arg->i > 0) { + if (arg->i > 0) { /* find the client after selmon->sel */ - for(c = selmon->sel->next; c && (!ISVISIBLE(c) || c->isfloating); c = c->next); - if(!c) - for(c = selmon->clients; c && (!ISVISIBLE(c) || c->isfloating); c = c->next); + for ( + c = selmon->sel->next; + c && (!ISVISIBLE(c) || c->isfloating); + c = c->next + ); - } - else { + if(!c) { + for( + c = selmon->clients; + c && (!ISVISIBLE(c) || c->isfloating); + c = c->next + ); + } + } else { /* find the client before selmon->sel */ - for(i = selmon->clients; i != selmon->sel; i = i->next) - if(ISVISIBLE(i) && !i->isfloating) + for (i = selmon->clients; i != selmon->sel; i = i->next) { + if (ISVISIBLE(i) && !i->isfloating) { c = i; - if(!c) - for(; i; i = i->next) - if(ISVISIBLE(i) && !i->isfloating) + } + } + + if (!c) { + for (; i; i = i->next) { + if (ISVISIBLE(i) && !i->isfloating) { c = i; + } + } + } } + /* find the client before selmon->sel and c */ - for(i = selmon->clients; i && (!p || !pc); i = i->next) { - if(i->next == selmon->sel) + for (i = selmon->clients; i && (!p || !pc); i = i->next) { + if (i->next == selmon->sel) { p = i; - if(i->next == c) + } + if (i->next == c) { pc = i; + } } /* swap c and selmon->sel selmon->clients in the selmon->clients list */ - if(c && c != selmon->sel) { - Client *temp = selmon->sel->next==c?selmon->sel:selmon->sel->next; + if (c && c != selmon->sel) { + Client *temp = selmon->sel->next == c ? selmon->sel : selmon->sel->next; selmon->sel->next = c->next==selmon->sel?c:c->next; c->next = temp; - if(p && p != c) + if (p && p != c) { p->next = c; - if(pc && pc != selmon->sel) + } + if (pc && pc != selmon->sel) { pc->next = selmon->sel; + } - if(selmon->sel == selmon->clients) + if (selmon->sel == selmon->clients) { selmon->clients = c; - else if(c == selmon->clients) + } else if (c == selmon->clients) { selmon->clients = selmon->sel; + } arrange(selmon); }