X-Git-Url: https://jasonwoof.com/gitweb/?a=blobdiff_plain;f=dwm.c;h=26ec20b34f90cf2b67bb2d0e030c793b461c0024;hb=a73ff905b04a5f1dab6e0aface03317a81528a95;hp=719db48eb530382427778f25dbaa4d0b9930754f;hpb=e8aafb8e918967ac316faf469151f97379d0e672;p=dwm.git diff --git a/dwm.c b/dwm.c index 719db48..26ec20b 100644 --- a/dwm.c +++ b/dwm.c @@ -1,4 +1,4 @@ -#define XINULATOR /* debug, simulates dual head */ +//#define XINULATOR /* debug, simulates dual head */ /* See LICENSE file for copyright and license details. * * dynamic window manager is designed like any other X client as well. It is @@ -1502,10 +1502,12 @@ tagmon(const Arg *arg) { detach(c); detachstack(c); c->mon = m; + c->tags = m->seltags; /* assign tags of target monitor */ attach(c); attachstack(c); - selmon->sel = selmon->stack; m->sel = c; + for(c = selmon->stack; c && !ISVISIBLE(c); c = c->snext); + selmon->sel = c; arrange(); break; } @@ -1620,7 +1622,10 @@ unmanage(Client *c) { detach(c); detachstack(c); if(c->mon->sel == c) { - c->mon->sel = c->mon->stack; + /* TODO: consider separate the next code into a function or into detachstack? */ + Client *tc; + for(tc = c->mon->stack; tc && !ISVISIBLE(tc); tc = tc->snext); + c->mon->sel = tc; focus(NULL); } XUngrabButton(dpy, AnyButton, AnyModifier, c->win);