|  |  | @ -1699,6 +1699,40 @@ updategeom(void) { | 
			
		
	
		
			
				
					|  |  |  | Client *c; | 
			
		
	
		
			
				
					|  |  |  | Monitor *newmons = NULL, *m = NULL, *tm; | 
			
		
	
		
			
				
					|  |  |  |  | 
			
		
	
		
			
				
					|  |  |  | /* TODO: | 
			
		
	
		
			
				
					|  |  |  | * This function needs to be seriously re-designed: | 
			
		
	
		
			
				
					|  |  |  | * | 
			
		
	
		
			
				
					|  |  |  | * #ifdef XINERAMA | 
			
		
	
		
			
				
					|  |  |  | * 1. Determine number of already existing monitors n | 
			
		
	
		
			
				
					|  |  |  | * 2. Determine number of monitors Xinerama reports nn | 
			
		
	
		
			
				
					|  |  |  | * 3. if(n <= nn) { | 
			
		
	
		
			
				
					|  |  |  | *       if(n < nn) { | 
			
		
	
		
			
				
					|  |  |  | *          append nn-n monitors to current struct | 
			
		
	
		
			
				
					|  |  |  | *          flag dirty | 
			
		
	
		
			
				
					|  |  |  | *       } | 
			
		
	
		
			
				
					|  |  |  | *       for(i = 0; i < nn; i++) { | 
			
		
	
		
			
				
					|  |  |  | *           if(oldgeom != newgeom) { | 
			
		
	
		
			
				
					|  |  |  | *               apply newgeom; | 
			
		
	
		
			
				
					|  |  |  | *               flag dirty; | 
			
		
	
		
			
				
					|  |  |  | *           } | 
			
		
	
		
			
				
					|  |  |  | *       } | 
			
		
	
		
			
				
					|  |  |  | *    } | 
			
		
	
		
			
				
					|  |  |  | *    else { | 
			
		
	
		
			
				
					|  |  |  | *       detach all clients | 
			
		
	
		
			
				
					|  |  |  | *       destroy current monitor struct | 
			
		
	
		
			
				
					|  |  |  | *       create new monitor struct | 
			
		
	
		
			
				
					|  |  |  | *       attach all clients to first monitor | 
			
		
	
		
			
				
					|  |  |  | *       flag dirty; | 
			
		
	
		
			
				
					|  |  |  | *    } | 
			
		
	
		
			
				
					|  |  |  | *    return dirty flag to caller | 
			
		
	
		
			
				
					|  |  |  | *        if dirty is seen by caller: | 
			
		
	
		
			
				
					|  |  |  | *           re-arrange bars/pixmaps | 
			
		
	
		
			
				
					|  |  |  | *           arrange() | 
			
		
	
		
			
				
					|  |  |  | * #else | 
			
		
	
		
			
				
					|  |  |  | *    don't share between XINERAMA and non-XINERAMA handling if it gets | 
			
		
	
		
			
				
					|  |  |  | *    too ugly | 
			
		
	
		
			
				
					|  |  |  | * #endif | 
			
		
	
		
			
				
					|  |  |  | */ | 
			
		
	
		
			
				
					|  |  |  | #ifdef XINERAMA | 
			
		
	
		
			
				
					|  |  |  | XineramaScreenInfo *info = NULL; | 
			
		
	
		
			
				
					|  |  |  | Bool *flags = NULL; | 
			
		
	
	
		
			
				
					|  |  | 
 |