|
|
@@ -164,6 +164,7 @@ void
|
|
|
restack(void) {
|
|
|
Client *c;
|
|
|
XEvent ev;
|
|
|
+ XWindowChanges wc;
|
|
|
|
|
|
drawstatus();
|
|
|
if(!sel)
|
|
|
@@ -171,12 +172,17 @@ restack(void) {
|
|
|
if(sel->isfloating || lt->arrange == floating)
|
|
|
XRaiseWindow(dpy, sel->win);
|
|
|
if(lt->arrange != floating) {
|
|
|
- if(!sel->isfloating)
|
|
|
- XLowerWindow(dpy, sel->win);
|
|
|
+ wc.stack_mode = Below;
|
|
|
+ wc.sibling = barwin;
|
|
|
+ if(!sel->isfloating) {
|
|
|
+ XConfigureWindow(dpy, sel->win, CWSibling | CWStackMode, &wc);
|
|
|
+ wc.sibling = sel->win;
|
|
|
+ }
|
|
|
for(c = nexttiled(clients); c; c = nexttiled(c->next)) {
|
|
|
if(c == sel)
|
|
|
continue;
|
|
|
- XLowerWindow(dpy, c->win);
|
|
|
+ XConfigureWindow(dpy, c->win, CWSibling | CWStackMode, &wc);
|
|
|
+ wc.sibling = c->win;
|
|
|
}
|
|
|
}
|
|
|
XSync(dpy, False);
|