| 
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -62,7 +62,7 @@ cleanup(void) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					static unsigned long | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					getcolor(const char *colstr) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					initcolor(const char *colstr) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						Colormap cmap = DefaultColormap(dpy, screen); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						XColor color; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -72,27 +72,7 @@ getcolor(const char *colstr) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					static void | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					scan(void) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						unsigned int i, num; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						Window *wins, d1, d2; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						XWindowAttributes wa; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						wins = NULL; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						if(XQueryTree(dpy, root, &d1, &d2, &wins, &num)) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							for(i = 0; i < num; i++) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								if(!XGetWindowAttributes(dpy, wins[i], &wa) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								|| wa.override_redirect || XGetTransientForHint(dpy, wins[i], &d1)) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									continue; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								if(wa.map_state == IsViewable) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									manage(wins[i], &wa); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						if(wins) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							XFree(wins); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					static void | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					setfont(const char *fontstr) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					initfont(const char *fontstr) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						char *def, **missing; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						int i, n; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -132,6 +112,26 @@ setfont(const char *fontstr) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						dc.font.height = dc.font.ascent + dc.font.descent; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					static void | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					scan(void) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						unsigned int i, num; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						Window *wins, d1, d2; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						XWindowAttributes wa; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						wins = NULL; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						if(XQueryTree(dpy, root, &d1, &d2, &wins, &num)) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							for(i = 0; i < num; i++) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								if(!XGetWindowAttributes(dpy, wins[i], &wa) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								|| wa.override_redirect || XGetTransientForHint(dpy, wins[i], &d1)) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									continue; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								if(wa.map_state == IsViewable) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									manage(wins[i], &wa); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						if(wins) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							XFree(wins); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					static void | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					setup(void) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						int i, j; | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -173,13 +173,13 @@ setup(void) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						seltag = emallocz(sizeof(Bool) * ntags); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						seltag[0] = True; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						/* style */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						dc.norm[ColBorder] = getcolor(NORMBORDERCOLOR); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						dc.norm[ColBG] = getcolor(NORMBGCOLOR); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						dc.norm[ColFG] = getcolor(NORMFGCOLOR); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						dc.sel[ColBorder] = getcolor(SELBORDERCOLOR); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						dc.sel[ColBG] = getcolor(SELBGCOLOR); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						dc.sel[ColFG] = getcolor(SELFGCOLOR); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						setfont(FONT); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						dc.norm[ColBorder] = initcolor(NORMBORDERCOLOR); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						dc.norm[ColBG] = initcolor(NORMBGCOLOR); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						dc.norm[ColFG] = initcolor(NORMFGCOLOR); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						dc.sel[ColBorder] = initcolor(SELBORDERCOLOR); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						dc.sel[ColBG] = initcolor(SELBGCOLOR); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						dc.sel[ColFG] = initcolor(SELFGCOLOR); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						initfont(FONT); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						/* geometry */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						sx = sy = 0; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						sw = DisplayWidth(dpy, screen); | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
				
				 | 
				
					
  |