applied Neil Klopfstein's patch, slightly modified 344f35f9
anselm@garbe.us · 2012-11-17 19:10 1 file(s) · +8 −2
dwm.c +8 −2
282 282
	[UnmapNotify] = unmapnotify
283 283
};
284 284
static Atom wmatom[WMLast], netatom[NetLast];
285 -
static Bool running = True;
285 +
static Bool running = True, usexkb;
286 286
static Cursor cursor[CurLast];
287 287
static Display *dpy;
288 288
static DC dc;
1069 1069
	XKeyEvent *ev;
1070 1070
1071 1071
	ev = &e->xkey;
1072 -
	keysym = XkbKeycodeToKeysym(dpy, (KeyCode)ev->keycode, 0, 0);
1072 +
	if(usexkb) {
1073 +
		keysym = XkbKeycodeToKeysym(dpy, (KeyCode)ev->keycode, 0, 0);
1074 +
	else
1075 +
		keysym = XKeycodeToKeysym(dpy, (KeyCode)ev->keycode, 0);
1073 1076
	for(i = 0; i < LENGTH(keys); i++)
1074 1077
		if(keysym == keys[i].keysym
1075 1078
		&& CLEANMASK(keys[i].mod) == CLEANMASK(ev->state)
1579 1582
void
1580 1583
setup(void) {
1581 1584
	XSetWindowAttributes wa;
1585 +
	int dummy = 0, xkbmajor = XkbMajorVersion, xkbminor = XkbMinorVersion;
1582 1586
1583 1587
	/* clean up any zombies immediately */
1584 1588
	sigchld(0);
1631 1635
	                |EnterWindowMask|LeaveWindowMask|StructureNotifyMask|PropertyChangeMask;
1632 1636
	XChangeWindowAttributes(dpy, root, CWEventMask|CWCursor, &wa);
1633 1637
	XSelectInput(dpy, root, wa.event_mask);
1638 +
	/* init xkb */
1639 +
	usexkb = XkbQueryExtension(dpy, &dummy, &dummy, &dummy, &xkb_major, &xkb_minor);
1634 1640
	grabkeys();
1635 1641
}
1636 1642