layout.c
changeset 918 7c556b28f1f6
parent 915 67104d329f06
child 931 8ff0f913999e
equal deleted inserted replaced
917:434e10a35d3c 918:7c556b28f1f6
   162 
   162 
   163 void
   163 void
   164 restack(void) {
   164 restack(void) {
   165 	Client *c;
   165 	Client *c;
   166 	XEvent ev;
   166 	XEvent ev;
       
   167 	XWindowChanges wc;
   167 
   168 
   168 	drawstatus();
   169 	drawstatus();
   169 	if(!sel)
   170 	if(!sel)
   170 		return;
   171 		return;
   171 	if(sel->isfloating || lt->arrange == floating)
   172 	if(sel->isfloating || lt->arrange == floating)
   172 		XRaiseWindow(dpy, sel->win);
   173 		XRaiseWindow(dpy, sel->win);
   173 	if(lt->arrange != floating) {
   174 	if(lt->arrange != floating) {
   174 		if(!sel->isfloating)
   175 		wc.stack_mode = Below;
   175 			XLowerWindow(dpy, sel->win);
   176 		wc.sibling = barwin;
       
   177 		if(!sel->isfloating) {
       
   178 			XConfigureWindow(dpy, sel->win, CWSibling | CWStackMode, &wc);
       
   179 			wc.sibling = sel->win;
       
   180 		}
   176 		for(c = nexttiled(clients); c; c = nexttiled(c->next)) {
   181 		for(c = nexttiled(clients); c; c = nexttiled(c->next)) {
   177 			if(c == sel)
   182 			if(c == sel)
   178 				continue;
   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 	XSync(dpy, False);
   188 	XSync(dpy, False);
   183 	while(XCheckMaskEvent(dpy, EnterWindowMask, &ev));
   189 	while(XCheckMaskEvent(dpy, EnterWindowMask, &ev));
   184 }
   190 }