+ if (!next_sel) { // if no visible window prev, find first visible
+ for(i = c->mon->stack; i && !ISVISIBLE(i); i = i->snext)
+ next_sel = i;
+ }
+ c->mon->sel = next_sel;
+ }
+ if (prev) {
+ prev->snext = c->snext;
+ } else {
+ c->mon->stack = c->snext;