X-Git-Url: https://jasonwoof.com/gitweb/?a=blobdiff_plain;f=view.c;h=5cbab0866fc5c8366ffd3597b8ea5e7a6a7a19a5;hb=15abade2720158fd35dcf59aa2cd5cbb325a849c;hp=e74d4bc96a49dc75902e076d0a531f27ef578245;hpb=c60de1acd47778b4835c14898fd8b1803537f9b3;p=dwm.git diff --git a/view.c b/view.c index e74d4bc..5cbab08 100644 --- a/view.c +++ b/view.c @@ -12,13 +12,14 @@ minclient() { Client *c, *min; + if((clients && clients->isfloat) || arrange == dofloat) + return clients; /* don't touch floating order */ for(min = c = clients; c; c = c->next) if(c->weight < min->weight) min = c; return min; } - static void reorder() { @@ -75,8 +76,10 @@ dofloat(Arg *arg) else ban(c); } - if(!sel || !isvisible(sel)) - focus(getnext(clients)); + if(!sel || !isvisible(sel)) { + for(sel = stack; sel && !isvisible(sel); sel = sel->snext); + focus(sel); + } restack(); } @@ -137,8 +140,10 @@ dotile(Arg *arg) else ban(c); } - if(!sel || !isvisible(sel)) - focus(getnext(clients)); + if(!sel || !isvisible(sel)) { + for(sel = stack; sel && !isvisible(sel); sel = sel->snext); + focus(sel); + } restack(); } @@ -226,7 +231,7 @@ restack() XRaiseWindow(dpy, sel->win); XRaiseWindow(dpy, sel->twin); } - if(arrange != dofloat) + if(arrange != dofloat) for(c = nexttiled(clients); c; c = nexttiled(c->next)) { XLowerWindow(dpy, c->twin); XLowerWindow(dpy, c->win); @@ -298,8 +303,9 @@ zoom(Arg *arg) if(!(c = nexttiled(c->next))) return; detach(c); + if(clients) + clients->prev = c; c->next = clients; - clients->prev = c; clients = c; focus(c); arrange(NULL);