|  | @@ -111,6 +111,24 @@ initfont(const char *fontstr) {
 | 
	
		
			
				|  |  |  	dc.font.height = dc.font.ascent + dc.font.descent;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +static long
 | 
	
		
			
				|  |  | +getstate(Window w) {
 | 
	
		
			
				|  |  | +	int format, status;
 | 
	
		
			
				|  |  | +	long result = -1;
 | 
	
		
			
				|  |  | +	unsigned char *p = NULL;
 | 
	
		
			
				|  |  | +	unsigned long n, extra;
 | 
	
		
			
				|  |  | +	Atom real;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	status = XGetWindowProperty(dpy, w, wmatom[WMState], 0L, 2L, False, wmatom[WMState],
 | 
	
		
			
				|  |  | +			&real, &format, &n, &extra, (unsigned char **)&p);
 | 
	
		
			
				|  |  | +	if(status != Success)
 | 
	
		
			
				|  |  | +		return -1;
 | 
	
		
			
				|  |  | +	if(n != 0)
 | 
	
		
			
				|  |  | +		result = *p;
 | 
	
		
			
				|  |  | +	XFree(p);
 | 
	
		
			
				|  |  | +	return result;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  static void
 | 
	
		
			
				|  |  |  scan(void) {
 | 
	
		
			
				|  |  |  	unsigned int i, num;
 | 
	
	
		
			
				|  | @@ -123,7 +141,14 @@ scan(void) {
 | 
	
		
			
				|  |  |  			if(!XGetWindowAttributes(dpy, wins[i], &wa)
 | 
	
		
			
				|  |  |  			|| wa.override_redirect || XGetTransientForHint(dpy, wins[i], &d1))
 | 
	
		
			
				|  |  |  				continue;
 | 
	
		
			
				|  |  | -			if(wa.map_state == IsViewable)
 | 
	
		
			
				|  |  | +			if(wa.map_state == IsViewable || getstate(wins[i]) == IconicState)
 | 
	
		
			
				|  |  | +				manage(wins[i], &wa);
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		for(i = 0; i < num; i++) { /* now the transients */
 | 
	
		
			
				|  |  | +			if(!XGetWindowAttributes(dpy, wins[i], &wa))
 | 
	
		
			
				|  |  | +				continue;
 | 
	
		
			
				|  |  | +			if(XGetTransientForHint(dpy, wins[i], &d1)
 | 
	
		
			
				|  |  | +			&& (wa.map_state == IsViewable || getstate(wins[i]) == IconicState))
 | 
	
		
			
				|  |  |  				manage(wins[i], &wa);
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  |  	}
 |