commit 030eda81cc622ad0c3efe2ab1f1a657ee82e45cb
Author: Christoph Lohmann <[email protected]>
Date:   Sun Jan 26 20:05:40 2014 +0100

    Simplifying the lastsel handling a bit.
    
    Some checks and comments were removed to simplify the function.

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;
 


Reply via email to