Browse Source

Backport patch to fix XF86XK_AudioPlay

custom-dwm
lhark 3 years ago
parent
commit
834f2e6a5e
  1. 25
      dwm.c

25
dwm.c

@ -1270,16 +1270,23 @@ grabkeys(void)
{ {
updatenumlockmask(); updatenumlockmask();
{ {
unsigned int i, j; unsigned int i, j, k;
unsigned int modifiers[] = { 0, LockMask, numlockmask, numlockmask|LockMask }; unsigned int modifiers[] = { 0, LockMask, numlockmask, numlockmask|LockMask };
KeyCode code; int start, end, skip;
KeySym *syms;
XUngrabKey(dpy, AnyKey, AnyModifier, root);
for (i = 0; i < LENGTH(keys); i++) XDisplayKeycodes(dpy, &start, &end);
if ((code = XKeysymToKeycode(dpy, keys[i].keysym))) syms = XGetKeyboardMapping(dpy, start, end - start + 1, &skip);
for (j = 0; j < LENGTH(modifiers); j++) for (k = start; k <= end; k++)
XGrabKey(dpy, code, keys[i].mod | modifiers[j], root, for (i = 0; i < LENGTH(keys); i++)
True, GrabModeAsync, GrabModeAsync); /* skip modifier codes, we do that ourselves */
if (keys[i].keysym == syms[(k - start) * skip])
for (j = 0; j < LENGTH(modifiers); j++)
XGrabKey(dpy, k,
keys[i].mod | modifiers[j],
root, True,
GrabModeAsync, GrabModeAsync);
XFree(syms);
} }
} }

Loading…
Cancel
Save