@ -1876,42 +1876,42 @@ updategeom(void)  
			
		
	
		
			
				
									memcpy ( & unique [ j + + ] ,  & info [ i ] ,  sizeof ( XineramaScreenInfo ) ) ;   
			
		
	
		
			
				
							XFree ( info ) ;   
			
		
	
		
			
				
							nn  =  j ;   
			
		
	
		
			
				
							if  ( n  < =  nn )  {  /* new monitors available */   
			
		
	
		
			
				
								for  ( i  =  0 ;  i  <  ( nn  -  n ) ;  i + + )  {   
			
		
	
		
			
				
									for  ( m  =  mons ;  m  & &  m - > next ;  m  =  m - > next ) ;   
			
		
	
		
			
				
									if  ( m )   
			
		
	
		
			
				
										m - > next  =  createmon ( ) ;   
			
		
	
		
			
				
									else   
			
		
	
		
			
				
										mons  =  createmon ( ) ;   
			
		
	
		
			
				
					
  
			
		
	
		
			
				
							/* new monitors if nn > n */   
			
		
	
		
			
				
							for  ( i  =  n ;  i  <  nn ;  i + + )  {   
			
		
	
		
			
				
								for  ( m  =  mons ;  m  & &  m - > next ;  m  =  m - > next ) ;   
			
		
	
		
			
				
								if  ( m )   
			
		
	
		
			
				
									m - > next  =  createmon ( ) ;   
			
		
	
		
			
				
								else   
			
		
	
		
			
				
									mons  =  createmon ( ) ;   
			
		
	
		
			
				
							}   
			
		
	
		
			
				
							for  ( i  =  0 ,  m  =  mons ;  i  <  nn  & &  m ;  m  =  m - > next ,  i + + )   
			
		
	
		
			
				
								if  ( i  > =  n   
			
		
	
		
			
				
								| |  unique [ i ] . x_org  ! =  m - > mx  | |  unique [ i ] . y_org  ! =  m - > my   
			
		
	
		
			
				
								| |  unique [ i ] . width  ! =  m - > mw  | |  unique [ i ] . height  ! =  m - > mh )   
			
		
	
		
			
				
								{   
			
		
	
		
			
				
									dirty  =  1 ;   
			
		
	
		
			
				
									m - > num  =  i ;   
			
		
	
		
			
				
									m - > mx  =  m - > wx  =  unique [ i ] . x_org ;   
			
		
	
		
			
				
									m - > my  =  m - > wy  =  unique [ i ] . y_org ;   
			
		
	
		
			
				
									m - > mw  =  m - > ww  =  unique [ i ] . width ;   
			
		
	
		
			
				
									m - > mh  =  m - > wh  =  unique [ i ] . height ;   
			
		
	
		
			
				
									updatebarpos ( m ) ;   
			
		
	
		
			
				
								}   
			
		
	
		
			
				
								for  ( i  =  0 ,  m  =  mons ;  i  <  nn  & &  m ;  m  =  m - > next ,  i + + )   
			
		
	
		
			
				
									if  ( i  > =  n   
			
		
	
		
			
				
									| |  unique [ i ] . x_org  ! =  m - > mx  | |  unique [ i ] . y_org  ! =  m - > my   
			
		
	
		
			
				
									| |  unique [ i ] . width  ! =  m - > mw  | |  unique [ i ] . height  ! =  m - > mh )   
			
		
	
		
			
				
									{   
			
		
	
		
			
				
										dirty  =  1 ;   
			
		
	
		
			
				
										m - > num  =  i ;   
			
		
	
		
			
				
										m - > mx  =  m - > wx  =  unique [ i ] . x_org ;   
			
		
	
		
			
				
										m - > my  =  m - > wy  =  unique [ i ] . y_org ;   
			
		
	
		
			
				
										m - > mw  =  m - > ww  =  unique [ i ] . width ;   
			
		
	
		
			
				
										m - > mh  =  m - > wh  =  unique [ i ] . height ;   
			
		
	
		
			
				
										updatebarpos ( m ) ;   
			
		
	
		
			
				
									}   
			
		
	
		
			
				
							}  else  {  /* less monitors available nn < n */   
			
		
	
		
			
				
								for  ( i  =  nn ;  i  <  n ;  i + + )  {   
			
		
	
		
			
				
									for  ( m  =  mons ;  m  & &  m - > next ;  m  =  m - > next ) ;   
			
		
	
		
			
				
									while  ( ( c  =  m - > clients ) )  {   
			
		
	
		
			
				
										dirty  =  1 ;   
			
		
	
		
			
				
										m - > clients  =  c - > next ;   
			
		
	
		
			
				
										detachstack ( c ) ;   
			
		
	
		
			
				
										c - > mon  =  mons ;   
			
		
	
		
			
				
										attach ( c ) ;   
			
		
	
		
			
				
										attachstack ( c ) ;   
			
		
	
		
			
				
									}   
			
		
	
		
			
				
									if  ( m  = =  selmon )   
			
		
	
		
			
				
										selmon  =  mons ;   
			
		
	
		
			
				
									cleanupmon ( m ) ;   
			
		
	
		
			
				
							/* removed monitors if n > nn */   
			
		
	
		
			
				
							for  ( i  =  nn ;  i  <  n ;  i + + )  {   
			
		
	
		
			
				
								for  ( m  =  mons ;  m  & &  m - > next ;  m  =  m - > next ) ;   
			
		
	
		
			
				
								while  ( ( c  =  m - > clients ) )  {   
			
		
	
		
			
				
									dirty  =  1 ;   
			
		
	
		
			
				
									m - > clients  =  c - > next ;   
			
		
	
		
			
				
									detachstack ( c ) ;   
			
		
	
		
			
				
									c - > mon  =  mons ;   
			
		
	
		
			
				
									attach ( c ) ;   
			
		
	
		
			
				
									attachstack ( c ) ;   
			
		
	
		
			
				
								}   
			
		
	
		
			
				
								if  ( m  = =  selmon )   
			
		
	
		
			
				
									selmon  =  mons ;   
			
		
	
		
			
				
								cleanupmon ( m ) ;   
			
		
	
		
			
				
							}   
			
		
	
		
			
				
							free ( unique ) ;   
			
		
	
		
			
				
						}  else