mirror of
https://github.com/xmonad/xmonad.git
synced 2025-07-31 04:01:52 -07:00
avoid grabbing all keys when a keysym is undefined
XKeysymToKeycode() returns zero if the keysym is undefined. Zero also happens to be the value of AnyKey.
This commit is contained in:
4
Main.hs
4
Main.hs
@@ -94,7 +94,9 @@ grabKeys dpy rootw = do
|
|||||||
ungrabKey dpy '\0' {-AnyKey-} anyModifier rootw
|
ungrabKey dpy '\0' {-AnyKey-} anyModifier rootw
|
||||||
flip mapM_ (M.keys keys) $ \(mask,sym) -> do
|
flip mapM_ (M.keys keys) $ \(mask,sym) -> do
|
||||||
kc <- keysymToKeycode dpy sym
|
kc <- keysymToKeycode dpy sym
|
||||||
mapM_ (grab kc) [mask, mask .|. numlockMask, mask .|. lockMask, mask .|. numlockMask .|. lockMask]
|
-- "If the specified KeySym is not defined for any KeyCode,
|
||||||
|
-- XKeysymToKeycode() returns zero."
|
||||||
|
when (kc /= '\0') $ mapM_ (grab kc . (mask .|.)) $ [0, numlockMask, lockMask, numlockMask .|. lockMask]
|
||||||
where
|
where
|
||||||
grab kc m = grabKey dpy kc m rootw True grabModeAsync grabModeAsync
|
grab kc m = grabKey dpy kc m rootw True grabModeAsync grabModeAsync
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user