if(!sel || sel->isfloat || n < 2 || (arrange != dotile) || maximized)
return;
- if((c = sel) == getnext(clients))
- if(!(c = getnext(c->next)))
- return;
+ /* this is somewhat tricky, it asserts to only zoom tiled clients */
+ for(c = getnext(clients); c && c->isfloat; c = getnext(c->next));
+ if(c) {
+ if(c == sel)
+ for(c = getnext(c->next); c && c->isfloat; c = getnext(c->next));
+ else
+ c = sel;
+ }
+ if(!c)
+ return;
detach(c);
c->next = clients;
clients->prev = c;