| 
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -282,7 +282,7 @@ static void (*handler[LASTEvent]) (XEvent *) = { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						[UnmapNotify] = unmapnotify | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					}; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					static Atom wmatom[WMLast], netatom[NetLast]; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					static Bool running = True; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					static Bool running = True, usexkb; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					static Cursor cursor[CurLast]; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					static Display *dpy; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					static DC dc; | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -1069,7 +1069,10 @@ keypress(XEvent *e) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						XKeyEvent *ev; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						ev = &e->xkey; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						keysym = XkbKeycodeToKeysym(dpy, (KeyCode)ev->keycode, 0, 0); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						if(usexkb) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							keysym = XkbKeycodeToKeysym(dpy, (KeyCode)ev->keycode, 0, 0); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						else | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							keysym = XKeycodeToKeysym(dpy, (KeyCode)ev->keycode, 0); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						for(i = 0; i < LENGTH(keys); i++) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							if(keysym == keys[i].keysym | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							&& CLEANMASK(keys[i].mod) == CLEANMASK(ev->state) | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -1579,6 +1582,7 @@ setmfact(const Arg *arg) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					void | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					setup(void) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						XSetWindowAttributes wa; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						int dummy = 0, xkbmajor = XkbMajorVersion, xkbminor = XkbMinorVersion; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						/* clean up any zombies immediately */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						sigchld(0); | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -1631,6 +1635,8 @@ setup(void) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						                |EnterWindowMask|LeaveWindowMask|StructureNotifyMask|PropertyChangeMask; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						XChangeWindowAttributes(dpy, root, CWEventMask|CWCursor, &wa); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						XSelectInput(dpy, root, wa.event_mask); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						/* init xkb */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						usexkb = XkbQueryExtension(dpy, &dummy, &dummy, &dummy, &xkb_major, &xkb_minor); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						grabkeys(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
				
				 | 
				
					
  |