possibly fix numpad
This commit is contained in:
parent
692638248a
commit
dc0d6ee211
53
spmenu.c
53
spmenu.c
|
@ -1100,31 +1100,50 @@ move(const Arg *arg)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
updatenumlockmask(void)
|
||||||
|
{
|
||||||
|
unsigned int i, j;
|
||||||
|
XModifierKeymap *modmap;
|
||||||
|
|
||||||
|
numlockmask = 0;
|
||||||
|
modmap = XGetModifierMapping(dpy);
|
||||||
|
for (i = 0; i < 8; i++)
|
||||||
|
for (j = 0; j < modmap->max_keypermod; j++)
|
||||||
|
if (modmap->modifiermap[i * modmap->max_keypermod + j]
|
||||||
|
== XKeysymToKeycode(dpy, XK_Num_Lock))
|
||||||
|
numlockmask = (1 << i);
|
||||||
|
XFreeModifiermap(modmap);
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
keypress(XEvent *e)
|
keypress(XEvent *e)
|
||||||
{
|
{
|
||||||
unsigned int i;
|
updatenumlockmask();
|
||||||
KeySym keysym;
|
{
|
||||||
XKeyEvent *ev;
|
unsigned int i;
|
||||||
char buf[64];
|
KeySym keysym;
|
||||||
KeySym ksym = NoSymbol;
|
XKeyEvent *ev;
|
||||||
Status status;
|
char buf[64];
|
||||||
|
KeySym ksym = NoSymbol;
|
||||||
|
Status status;
|
||||||
|
|
||||||
int len = 0;
|
int len = 0;
|
||||||
ev = &e->xkey;
|
ev = &e->xkey;
|
||||||
len = XmbLookupString(xic, ev, buf, sizeof buf, &ksym, &status);
|
len = XmbLookupString(xic, ev, buf, sizeof buf, &ksym, &status);
|
||||||
|
|
||||||
keysym = XKeycodeToKeysym(dpy, (KeyCode)ev->keycode, 0);
|
keysym = XKeycodeToKeysym(dpy, (KeyCode)ev->keycode, 0);
|
||||||
|
|
||||||
for (i = 0; i < LENGTH(keys); i++) {
|
for (i = 0; i < LENGTH(keys); i++) {
|
||||||
if (keysym == keys[i].keysym && CLEANMASK(keys[i].mod) == CLEANMASK(ev->state) && keys[i].func)
|
if (keysym == keys[i].keysym && CLEANMASK(keys[i].mod) == CLEANMASK(ev->state) && keys[i].func)
|
||||||
keys[i].func(&(keys[i].arg));
|
keys[i].func(&(keys[i].arg));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!iscntrl(*buf) && type) {
|
if (!iscntrl(*buf) && type) {
|
||||||
insert(buf, len);
|
insert(buf, len);
|
||||||
|
|
||||||
drawmenu();
|
drawmenu();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue