applied restack patch of anydot, with slight changes c95bf3db
Anselm R. Garbe · 2007-06-06 11:43 1 file(s) · +9 −3
layout.c +9 −3
164 164
restack(void) {
165 165
	Client *c;
166 166
	XEvent ev;
167 +
	XWindowChanges wc;
167 168
168 169
	drawstatus();
169 170
	if(!sel)
171 172
	if(sel->isfloating || lt->arrange == floating)
172 173
		XRaiseWindow(dpy, sel->win);
173 174
	if(lt->arrange != floating) {
174 -
		if(!sel->isfloating)
175 -
			XLowerWindow(dpy, sel->win);
175 +
		wc.stack_mode = Below;
176 +
		wc.sibling = barwin;
177 +
		if(!sel->isfloating) {
178 +
			XConfigureWindow(dpy, sel->win, CWSibling | CWStackMode, &wc);
179 +
			wc.sibling = sel->win;
180 +
		}
176 181
		for(c = nexttiled(clients); c; c = nexttiled(c->next)) {
177 182
			if(c == sel)
178 183
				continue;
179 -
			XLowerWindow(dpy, c->win);
184 +
			XConfigureWindow(dpy, c->win, CWSibling | CWStackMode, &wc);
185 +
			wc.sibling = c->win;
180 186
		}
181 187
	}
182 188
	XSync(dpy, False);