aboutsummaryrefslogtreecommitdiffstats
path: root/Main.hs
diff options
context:
space:
mode:
authorJason Creighton <jcreigh@gmail.com>2007-04-28 20:00:46 +0200
committerJason Creighton <jcreigh@gmail.com>2007-04-28 20:00:46 +0200
commit8fb8058a6e35d742059b76e69106c2bbf604c37a (patch)
treea32b0534da590f6be486add89e38b080cacd253e /Main.hs
parent7031e8bdfb1a82444d64f45d02eda6e183018e4c (diff)
downloadxmonad-8fb8058a6e35d742059b76e69106c2bbf604c37a.tar.gz
xmonad-8fb8058a6e35d742059b76e69106c2bbf604c37a.tar.xz
xmonad-8fb8058a6e35d742059b76e69106c2bbf604c37a.zip
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. darcs-hash:20070428180046-b9aa7-79b768917b225267fa13fffda0738b53504aa722.gz
Diffstat (limited to 'Main.hs')
-rw-r--r--Main.hs4
1 files changed, 3 insertions, 1 deletions
diff --git a/Main.hs b/Main.hs
index 6932867..11d839d 100644
--- a/Main.hs
+++ b/Main.hs
@@ -94,7 +94,9 @@ grabKeys dpy rootw = do
ungrabKey dpy '\0' {-AnyKey-} anyModifier rootw
flip mapM_ (M.keys keys) $ \(mask,sym) -> do
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
grab kc m = grabKey dpy kc m rootw True grabModeAsync grabModeAsync