From 912a3cfce1846fdc2e956388b5ebd3a5ad69c143 Mon Sep 17 00:00:00 2001 From: Jason Creighton Date: Sat, 28 Apr 2007 20:00:46 +0200 Subject: 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 --- Main.hs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'Main.hs') 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 -- cgit v1.2.3