|
|
|
@ -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();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|