diff options
author | Christoph Lohmann <20h@r-36.net> | 2014-01-26 20:05:40 +0100 |
---|---|---|
committer | Christoph Lohmann <20h@r-36.net> | 2014-01-26 20:05:40 +0100 |
commit | 030eda81cc622ad0c3efe2ab1f1a657ee82e45cb (patch) | |
tree | 4cb3a5b30e03a0fb3b4074a6e43cd327fca9dbec | |
parent | 4ed0a2da67f742cfb75f85fc02f703e21a0206d6 (diff) |
Simplifying the lastsel handling a bit.
Some checks and comments were removed to simplify the function.
-rw-r--r-- | tabbed.c | 27 |
1 files changed, 9 insertions, 18 deletions
@@ -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; |