On Sun, Jun 26, 2011 at 07:23, Mikhail Gonchar <m...@reji.ru> wrote:
> 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. > > it works with num lock, but not with scroll lock on.
--- a/dwm.c 2011-06-27 21:35:11.000000000 +0300 +++ b/dwm.c 2011-06-27 21:48:55.443000001 +0300 @@ -42,7 +42,7 @@ /* macros */ #define BUTTONMASK (ButtonPressMask|ButtonReleaseMask) -#define CLEANMASK(mask) (mask & ~numlockmask & (ShiftMask|ControlMask|Mod1Mask|Mod2Mask|Mod3Mask|Mod4Mask|Mod5Mask)) +#define CLEANMASK(mask) (mask & ~(numlockmask|LockMask) & (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])