On Sat, Jun 25, 2011 at 09:32:24AM +0100, garbeam wrote:
> Hi there,
> 
> I'd like you to test it and let me know any issues.

Hello.

dwm hotkeys and mouse buttons doesn't work for me when Num Lock is on.
Patch attached.

My keyboard setup:
  setxkbmap us,ru
  xmodmap -e "keysym Caps_Lock = ISO_First_Group ISO_Last_Group"
  numlockx on

xmodmap output:
  xmodmap:  up to 4 keys per modifier, (keycodes in parentheses):

  shift       Shift_L (0x32),  Shift_R (0x3e)
  lock        ISO_First_Group (0x42)
  control     Control_L (0x25),  Control_R (0x69)
  mod1        Alt_L (0x40),  Alt_R (0x6c),  Meta_L (0xcd)
  mod2        Num_Lock (0x4d)
  mod3
  mod4        Super_L (0x85),  Super_R (0x86),  Super_L (0xce),  Hyper_L (0xcf)
  mod5        ISO_Level3_Shift (0x5c),  Mode_switch (0xcb)

x86-64 Linux system, X.Org 7.6, evdev, 105 key PC keyboard.

diff -r 014df3c34b64 dwm.c
--- a/dwm.c     Sat Jun 25 09:07:28 2011 +0100
+++ b/dwm.c     Sun Jun 26 10:22:08 2011 +0600
@@ -42,7 +42,7 @@
 
 /* macros */
 #define BUTTONMASK              (ButtonPressMask|ButtonReleaseMask)
-#define CLEANMASK(mask)         (mask & 
(ShiftMask|ControlMask|Mod1Mask|Mod2Mask|Mod3Mask|Mod4Mask|Mod5Mask))
+#define CLEANMASK(mask)         (mask & ~numlockmask & 
(ShiftMask|ControlMask|Mod1Mask|Mod2Mask|Mod3Mask|Mod4Mask|Mod5Mask))
 #define INRECT(X,Y,RX,RY,RW,RH) ((X) >= (RX) && (X) < (RX) + (RW) && (Y) >= 
(RY) && (Y) < (RY) + (RH))
 #define ISVISIBLE(C)            ((C->tags & C->mon->tagset[C->mon->seltags]))
 #define LENGTH(X)               (sizeof X / sizeof X[0])

Reply via email to