for(i = 0, m = mons; m; m = m->next, i++)
if(i == arg->ui) {
- if(m->stack)
- focus(m->stack);
- else {
- unfocus(selmon->stack);
- selmon = m;
- focus(NULL);
- }
+ if(m == selmon)
+ return;
+ unfocus(selmon->sel);
+ selmon = m;
+ focus(NULL);
drawbars();
break;
}
detach(c);
detachstack(c);
c->mon = m;
- c->tags = m->seltags; /* assign tags of target monitor */
+ c->tags = m->tagset[m->seltags]; /* assign tags of target monitor */
attach(c);
attachstack(c);
- m->sel = c;
- for(c = selmon->stack; c && !ISVISIBLE(c); c = c->snext);
- selmon->sel = c;
+ focus(NULL);
arrange();
break;
}