summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristoph Lohmann <20h@r-36.net>2014-01-26 20:05:40 +0100
committerChristoph Lohmann <20h@r-36.net>2014-01-26 20:05:40 +0100
commit030eda81cc622ad0c3efe2ab1f1a657ee82e45cb (patch)
tree4cb3a5b30e03a0fb3b4074a6e43cd327fca9dbec
parent4ed0a2da67f742cfb75f85fc02f703e21a0206d6 (diff)
Simplifying the lastsel handling a bit.
Some checks and comments were removed to simplify the function.
-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;