dwm

my fork of dwm
Index Commits Files Refs README LICENSE
commit d22abeee867397c366f69cf89524b94e01c2e0e2
parent a33150eb4b041b243d0493cd4b53bfbcace3299e
Author: Anselm R. Garbe <arg@10kloc.org>
Date:   Wed,  6 Sep 2006 17:31:52 +0200

this patch keeps track of global z-layer order of clients which are floating or if floating mode is enabled
Diffstat:
Mview.c | 19+++++++------------
1 file changed, 7 insertions(+), 12 deletions(-)
diff --git a/view.c b/view.c
@@ -12,6 +12,8 @@ minclient()
 {
     Client *c, *min;
 
+    if((clients && clients->isfloat) || arrange == dofloat)
+        return clients; /* don't touch floating order */
     for(min = c = clients; c; c = c->next)
         if(c->weight < min->weight)
             min = c;
@@ -19,16 +21,6 @@ minclient()
 }
 
 static void
-pop(Client *c)
-{
-    detach(c);
-    if(clients)
-        clients->prev = c;
-    c->next = clients;
-    clients = c;
-}
-
-static void
 reorder()
 {
     Client *c, *newclients, *tail;
@@ -232,7 +224,6 @@ restack()
         return;
     }
     if(sel->isfloat || arrange == dofloat) {
-        pop(sel);
         XRaiseWindow(dpy, sel->win);
         XRaiseWindow(dpy, sel->twin);
     }
@@ -307,7 +298,11 @@ zoom(Arg *arg)
     if((c = sel) == nexttiled(clients))
         if(!(c = nexttiled(c->next)))
             return;
-    pop(c);
+    detach(c);
+    if(clients)
+        clients->prev = c;
+    c->next = clients;
+    clients = c;
     focus(c);
     arrange(NULL);
 }