JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
added some TODOs, some other focus fixes
[dwm.git] / dwm.c
diff --git a/dwm.c b/dwm.c
index 719db48..b54ccd4 100644 (file)
--- 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
@@ -1504,8 +1504,9 @@ tagmon(const Arg *arg) {
                        c->mon = m;
                        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 +1621,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);