| 
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -137,6 +137,7 @@ void eprint(const char *errstr, ...); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					void expose(XEvent *e); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					void floating(void); /* default floating layout */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					void focus(Client *c); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					void focusin(XEvent *e); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					void focusnext(const char *arg); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					void focusprev(const char *arg); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					Client *getclient(Window w); | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -206,9 +207,10 @@ void (*handler[LASTEvent]) (XEvent *) = { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						[ConfigureNotify] = configurenotify, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						[DestroyNotify] = destroynotify, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						[EnterNotify] = enternotify, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						[LeaveNotify] = leavenotify, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						[Expose] = expose, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						[FocusIn] = focusin, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						[KeyPress] = keypress, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						[LeaveNotify] = leavenotify, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						[MappingNotify] = mappingnotify, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						[MapRequest] = maprequest, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						[PropertyNotify] = propertynotify, | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -709,6 +711,14 @@ focus(Client *c) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							XSetInputFocus(dpy, root, RevertToPointerRoot, CurrentTime); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					void | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					focusin(XEvent *e) { /* there are some broken focus acquiring clients */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						XFocusChangeEvent *ev = &e->xfocus; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						if(sel && ev->window != sel->win) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							XSetInputFocus(dpy, sel->win, RevertToPointerRoot, CurrentTime); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					void | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					focusnext(const char *arg) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						Client *c; | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -1026,8 +1036,7 @@ manage(Window w, XWindowAttributes *wa) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						XSetWindowBorder(dpy, w, dc.norm[ColBorder]); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						configure(c); /* propagates border_width, if size doesn't change */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						updatesizehints(c); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						XSelectInput(dpy, w, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							StructureNotifyMask | PropertyChangeMask | EnterWindowMask); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						XSelectInput(dpy, w, EnterWindowMask | FocusChangeMask | PropertyChangeMask | StructureNotifyMask); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						grabbuttons(c, False); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						updatetitle(c); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						if((rettrans = XGetTransientForHint(dpy, w, &trans) == Success)) | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
				
				 | 
				
					
  |