sowm: potential fix for key bug

This commit is contained in:
Dylan Araps 2019-11-24 14:24:13 +00:00
parent e4965417f7
commit 2292f86d7f
No known key found for this signature in database
GPG Key ID: 46D62DD9F1DE636E

6
sowm.c
View File

@ -71,6 +71,9 @@ static void (*events[LASTEvent])(XEvent *e) = {
#define ws_save(W) ws_list[W] = list
#define ws_sel(W) list = ws_list[ws = W]
#define mask(m) (m & ~(LockMask) & \
(ShiftMask|ControlMask|Mod1Mask|Mod2Mask|Mod3Mask|Mod4Mask|Mod5Mask))
#define win_size(W, gx, gy, gw, gh) \
XGetGeometry(d, W, &(Window){0}, gx, gy, gw, gh, \
&(unsigned int){0}, &(unsigned int){0})
@ -111,7 +114,8 @@ void key_press(XEvent *e) {
KeySym keysym = XkbKeycodeToKeysym(d, e->xkey.keycode, 0, 0);
for (unsigned int i=0; i < sizeof(keys)/sizeof(*keys); ++i)
if (keys[i].mod == e->xkey.state && keys[i].keysym == keysym)
if (keys[i].keysym == keysym &&
mask(keys[i].mod) == mask(e->xkey.state))
keys[i].function(keys[i].arg);
}