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
|
||||
keypress(XEvent *e)
|
||||
{
|
||||
unsigned int i;
|
||||
KeySym keysym;
|
||||
XKeyEvent *ev;
|
||||
char buf[64];
|
||||
KeySym ksym = NoSymbol;
|
||||
Status status;
|
||||
updatenumlockmask();
|
||||
{
|
||||
unsigned int i;
|
||||
KeySym keysym;
|
||||
XKeyEvent *ev;
|
||||
char buf[64];
|
||||
KeySym ksym = NoSymbol;
|
||||
Status status;
|
||||
|
||||
int len = 0;
|
||||
ev = &e->xkey;
|
||||
len = XmbLookupString(xic, ev, buf, sizeof buf, &ksym, &status);
|
||||
int len = 0;
|
||||
ev = &e->xkey;
|
||||
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++) {
|
||||
if (keysym == keys[i].keysym && CLEANMASK(keys[i].mod) == CLEANMASK(ev->state) && keys[i].func)
|
||||
keys[i].func(&(keys[i].arg));
|
||||
}
|
||||
for (i = 0; i < LENGTH(keys); i++) {
|
||||
if (keysym == keys[i].keysym && CLEANMASK(keys[i].mod) == CLEANMASK(ev->state) && keys[i].func)
|
||||
keys[i].func(&(keys[i].arg));
|
||||
}
|
||||
|
||||
if (!iscntrl(*buf) && type) {
|
||||
insert(buf, len);
|
||||
if (!iscntrl(*buf) && type) {
|
||||
insert(buf, len);
|
||||
|
||||
drawmenu();
|
||||
drawmenu();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue