about summary refs log tree commit diff stats
diff options
context:
space:
mode:
author2014-01-26 20:05:40 +0100
committer2014-01-26 20:05:40 +0100
commit030eda81cc622ad0c3efe2ab1f1a657ee82e45cb (patch)
tree4cb3a5b30e03a0fb3b4074a6e43cd327fca9dbec
parent4ed0a2da67f742cfb75f85fc02f703e21a0206d6 (diff)
downloadtabbed-030eda81cc622ad0c3efe2ab1f1a657ee82e45cb.tar.gz
-rw-r--r--tabbed.c27
1 files changed, 9 insertions, 18 deletions
diff --git a/tabbed.c b/tabbed.c
index f5850ed..b2adf29 100644
--- a/tabbed.c
+++ b/tabbed.c
@@ -1059,9 +1059,10 @@ unmanage(int c) {
 		return;
 	}
 
-	if(!nclients) {
+	if(!nclients)
 		return;
-	} else if(c == 0) {
+
+	if(c == 0) {
 		/* First client. */
 		nclients--;
 		free(clients[0]);
@@ -1080,35 +1081,25 @@ unmanage(int c) {
 	}
 
 	if(nclients <= 0) {
-		sel = -1;
-		lastsel = -1;
+		lastsel = sel = -1;
 
-		if (closelastclient) {
+		if(closelastclient) {
 			running = False;
-		} else if (fillagain && running) {
+		} else if(fillagain && running) {
 			spawn(NULL);
 		}
 	} else {
-		if(c && lastsel >= nclients) {
+		if(lastsel >= nclients) {
 			lastsel = nclients - 1;
 		} else if(lastsel > c) {
 			lastsel--;
 		}
 
 		if(c == sel) {
-			/* Note that focus() will never set lastsel == sel,
-			 * so if here lastsel == sel, it was decreased by above if() clause
-			 * and was actually (sel + 1) before.
-			 */
-			if(lastsel > 0) {
-				focus(lastsel);
-			} else {
-				focus(0);
-				lastsel = 1;
-			}
+			focus(lastsel);
 		} else {
 			if(sel > c)
-				sel -= 1;
+				sel--;
 			if(sel >= nclients)
 				sel = nclients - 1;