diff options
| author | anselm@garbe.us <unknown> | 2012-11-17 19:10:39 +0100 | 
|---|---|---|
| committer | anselm@garbe.us <unknown> | 2012-11-17 19:10:39 +0100 | 
| commit | 344f35f9f55b615e5d7c46f863578f1cc974cc54 (patch) | |
| tree | 3f91d2926986775572815ba1d61b43f7ba5f7d4c | |
| parent | 87adcd263b1fc75f7eb3172dac55ca641fd7a96a (diff) | |
applied Neil Klopfstein's patch, slightly modified
| -rw-r--r-- | dwm.c | 10 | 
1 files changed, 8 insertions, 2 deletions
| @@ -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();  } | 
