|  | @@ -185,9 +185,11 @@ manage(Window w, XWindowAttributes *wa) {
 | 
	
		
			
				|  |  |  	c->y = wa->y;
 | 
	
		
			
				|  |  |  	c->w = wa->width;
 | 
	
		
			
				|  |  |  	c->h = wa->height;
 | 
	
		
			
				|  |  | +	c->oldborder = wa->border_width;
 | 
	
		
			
				|  |  |  	if(c->w == sw && c->h == sh) {
 | 
	
		
			
				|  |  |  		c->x = sx;
 | 
	
		
			
				|  |  |  		c->y = sy;
 | 
	
		
			
				|  |  | +		c->border = wa->border_width;
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  	else {
 | 
	
		
			
				|  |  |  		if(c->x + c->w + 2 * c->border > wax + waw)
 | 
	
	
		
			
				|  | @@ -198,15 +200,16 @@ manage(Window w, XWindowAttributes *wa) {
 | 
	
		
			
				|  |  |  			c->x = wax;
 | 
	
		
			
				|  |  |  		if(c->y < way)
 | 
	
		
			
				|  |  |  			c->y = way;
 | 
	
		
			
				|  |  | +		c->border = BORDERPX;
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  | +	wc.border_width = c->border;
 | 
	
		
			
				|  |  | +	XConfigureWindow(dpy, w, CWBorderWidth, &wc);
 | 
	
		
			
				|  |  | +	XSetWindowBorder(dpy, w, dc.norm[ColBorder]);
 | 
	
		
			
				|  |  | +	configure(c); /* propagates border_width, if size doesn't change */
 | 
	
		
			
				|  |  |  	updatesizehints(c);
 | 
	
		
			
				|  |  |  	XSelectInput(dpy, w,
 | 
	
		
			
				|  |  |  		StructureNotifyMask | PropertyChangeMask | EnterWindowMask);
 | 
	
		
			
				|  |  |  	grabbuttons(c, False);
 | 
	
		
			
				|  |  | -	c->border = wc.border_width = (c->w == sw && c->h == sh) ? wa->border_width : BORDERPX;
 | 
	
		
			
				|  |  | -	XConfigureWindow(dpy, w, CWBorderWidth, &wc);
 | 
	
		
			
				|  |  | -	XSetWindowBorder(dpy, w, dc.norm[ColBorder]);
 | 
	
		
			
				|  |  | -	configure(c); /* propagates border_width, if size doesn't change */
 | 
	
		
			
				|  |  |  	updatetitle(c);
 | 
	
		
			
				|  |  |  	if((rettrans = XGetTransientForHint(dpy, w, &trans) == Success))
 | 
	
		
			
				|  |  |  		for(t = clients; t && t->win != trans; t = t->next);
 | 
	
	
		
			
				|  | @@ -378,10 +381,13 @@ updatetitle(Client *c) {
 | 
	
		
			
				|  |  |  void
 | 
	
		
			
				|  |  |  unmanage(Client *c) {
 | 
	
		
			
				|  |  |  	Client *nc;
 | 
	
		
			
				|  |  | +	XWindowChanges wc;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +	wc.border_width = c->oldborder;
 | 
	
		
			
				|  |  |  	/* The server grab construct avoids race conditions. */
 | 
	
		
			
				|  |  |  	XGrabServer(dpy);
 | 
	
		
			
				|  |  |  	XSetErrorHandler(xerrordummy);
 | 
	
		
			
				|  |  | +	XConfigureWindow(dpy, c->win, CWBorderWidth, &wc); /* restore border */
 | 
	
		
			
				|  |  |  	detach(c);
 | 
	
		
			
				|  |  |  	detachstack(c);
 | 
	
		
			
				|  |  |  	if(sel == c) {
 |