applied Eckehard Berns fix fix, sorry that this took so long
authoranselm@garbe.us <unknown>
Wed, 8 Feb 2012 18:54:05 +0000 (19:54 +0100)
committeranselm@garbe.us <unknown>
Wed, 8 Feb 2012 18:54:05 +0000 (19:54 +0100)
dwm.c

diff --git a/dwm.c b/dwm.c
index 0f946a6..d39f11f 100644 (file)
--- a/dwm.c
+++ b/dwm.c
@@ -397,9 +397,10 @@ arrange(Monitor *m) {
                showhide(m->stack);
        else for(m = mons; m; m = m->next)
                showhide(m->stack);
-       if(m)
+       if(m) {
                arrangemon(m);
-       else for(m = mons; m; m = m->next)
+               restack(m);
+       } else for(m = mons; m; m = m->next)
                arrangemon(m);
 }
 
@@ -408,7 +409,6 @@ arrangemon(Monitor *m) {
        strncpy(m->ltsymbol, m->lt[m->sellt]->symbol, sizeof m->ltsymbol);
        if(m->lt[m->sellt]->arrange)
                m->lt[m->sellt]->arrange(m);
-       restack(m);
 }
 
 void
@@ -1420,6 +1420,8 @@ restack(Monitor *m) {
        drawbar(m);
        if(!m->sel)
                return;
+       if(m->sel->isfloating || !m->lt[m->sellt]->arrange)
+               XRaiseWindow(dpy, m->sel->win);
        if(m->lt[m->sellt]->arrange) {
                wc.stack_mode = Below;
                wc.sibling = m->barwin;