| 
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -139,6 +139,7 @@ static void attachstack(Client *c); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					static void buttonpress(XEvent *e); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					static void checkotherwm(void); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					static void cleanup(void); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					static void clearurgent(void); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					static void configure(Client *c); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					static void configurenotify(XEvent *e); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					static void configurerequest(XEvent *e); | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -374,6 +375,23 @@ cleanup(void) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						XSetInputFocus(dpy, PointerRoot, RevertToPointerRoot, CurrentTime); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					void | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					clearurgent(void) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						XWMHints *wmh; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						Client *c; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						for(c = clients; c; c = c->next) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							if(ISVISIBLE(c) && c->isurgent) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								c->isurgent = False; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								if (!(wmh = XGetWMHints(dpy, c->win))) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									continue; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								wmh->flags &= ~XUrgencyHint; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								XSetWMHints(dpy, c->win, wmh); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								XFree(wmh); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					void | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					configure(Client *c) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						XConfigureEvent ce; | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -1496,6 +1514,7 @@ toggleview(const Arg *arg) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						if(mask) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							tagset[seltags] = mask; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							clearurgent(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							arrange(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					} | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -1626,10 +1645,13 @@ updatewmhints(Client *c) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						XWMHints *wmh; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						if((wmh = XGetWMHints(dpy, c->win))) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							if(c == sel) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								sel->isurgent = False; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							if(ISVISIBLE(c) && wmh->flags & XUrgencyHint) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								wmh->flags &= ~XUrgencyHint; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								XSetWMHints(dpy, c->win, wmh); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							else | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								c->isurgent = (wmh->flags & XUrgencyHint) ? True : False; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							XFree(wmh); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					} | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -1641,6 +1663,7 @@ view(const Arg *arg) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						seltags ^= 1; /* toggle sel tagset */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						if(arg && (arg->ui & TAGMASK)) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							tagset[seltags] = arg->i & TAGMASK; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						clearurgent(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						arrange(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
				
				 | 
				
					
  |