about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--dwm.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/dwm.c b/dwm.c
index e3afc9a..b54ccd4 100644
--- a/dwm.c
+++ b/dwm.c
@@ -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);