diff options
author | Anselm R. Garbe <arg@10kloc.org> | 2006-09-06 17:31:52 +0200 |
---|---|---|
committer | Anselm R. Garbe <arg@10kloc.org> | 2006-09-06 17:31:52 +0200 |
commit | d22abeee867397c366f69cf89524b94e01c2e0e2 (patch) | |
tree | 85e2334cb1ad5e94fe1083da6a38d4eeb9af5eef /view.c | |
parent | a33150eb4b041b243d0493cd4b53bfbcace3299e (diff) | |
download | dwm-d22abeee867397c366f69cf89524b94e01c2e0e2.tar.gz |
this patch keeps track of global z-layer order of clients which are floating or if floating mode is enabled
Diffstat (limited to 'view.c')
-rw-r--r-- | view.c | 19 |
1 files changed, 7 insertions, 12 deletions
diff --git a/view.c b/view.c index eddf2da..9ee4c78 100644 --- 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); } |