@ -3,7 +3,6 @@  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					 *  See  LICENSE  file  for  license  details .   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					 */   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					# include  "dwm.h"  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					# include  <stdlib.h>  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					# include  <X11/keysym.h>  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					# include  <X11/Xatom.h>  
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				
					@ -151,32 +150,60 @@ configurerequest(XEvent *e)  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					{  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						Client  * c ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						XConfigureRequestEvent  * ev  =  & e - > xconfigurerequest ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						XEvent  synev ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						XWindowChanges  wc ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						unsigned  long  newmask ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						ev - > value_mask  & =  ~ CWSibling ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						if ( ( c  =  getclient ( ev - > window ) ) )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
							gravitate ( c ,  True ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
							if ( ev - > value_mask  &  CWX )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
								c - > x  =  ev - > x ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
							if ( ev - > value_mask  &  CWY )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
								c - > y  =  ev - > y ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
							if ( ev - > value_mask  &  CWWidth )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
								c - > w  =  ev - > width ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
							if ( ev - > value_mask  &  CWHeight )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
								c - > h  =  ev - > height ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
							if ( c - > isfloat )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
								if ( ev - > value_mask  &  CWX )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
									c - > x  =  ev - > x ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
								if ( ev - > value_mask  &  CWY )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
									c - > y  =  ev - > y ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
								if ( ev - > value_mask  &  CWWidth )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
									c - > w  =  ev - > width ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
								if ( ev - > value_mask  &  CWHeight )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
									c - > h  =  ev - > height ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
							}   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
							if ( ev - > value_mask  &  CWBorderWidth )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
								c - > border  =  1 ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
								c - > border  =  ev - > border_width ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
							gravitate ( c ,  False ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
							resize ( c ,  True ,  TopLeft ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						}   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						wc . x  =  ev - > x ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						wc . y  =  ev - > y ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						wc . width  =  ev - > width ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						wc . height  =  ev - > height ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						wc . border_width  =  1 ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						XConfigureWindow ( dpy ,  ev - > window ,   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
								CWX | CWY | CWWidth | CWHeight | CWBorderWidth ,  & wc ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
							wc . x  =  c - > x ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
							wc . y  =  c - > y ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
							wc . width  =  c - > w ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
							wc . height  =  c - > h ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
							newmask  =  ev - > value_mask  &  ( ~ ( CWSibling  |  CWStackMode  |  CWBorderWidth ) ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
							if ( newmask )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
								XConfigureWindow ( dpy ,  c - > win ,  newmask ,  & wc ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
							else  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
								synev . type  =  ConfigureNotify ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
								synev . xconfigure . display  =  dpy ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
								synev . xconfigure . event  =  c - > win ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
								synev . xconfigure . window  =  c - > win ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
								synev . xconfigure . x  =  c - > x ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
								synev . xconfigure . y  =  c - > y ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
								synev . xconfigure . width  =  c - > w ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
								synev . xconfigure . height  =  c - > h ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
								synev . xconfigure . border_width  =  c - > border ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
								synev . xconfigure . above  =  None ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
								/* Send synthetic ConfigureNotify */   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
								XSendEvent ( dpy ,  c - > win ,  True ,  NoEventMask ,  & synev ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
							}   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						}   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						else  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
							wc . x  =  ev - > x ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
							wc . y  =  ev - > y ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
							wc . width  =  ev - > width ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
							wc . height  =  ev - > height ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
							wc . border_width  =  ev - > border_width ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
							wc . sibling  =  ev - > above ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
							wc . stack_mode  =  ev - > detail ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
							XConfigureWindow ( dpy ,  ev - > window ,  ev - > value_mask ,  & wc ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						}   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						XSync ( dpy ,  False ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					}