From 4c7e9568ee8d5db7dd60ba174b6814de5d5b909e Mon Sep 17 00:00:00 2001 From: Don Stewart Date: Wed, 7 Mar 2007 08:49:10 +0100 Subject: -Wall police. and strip the binary darcs-hash:20070307074910-9c5c1-c82071afe812d1e1e6f4577c07c1d7b0b141c6c9 --- Main.hs | 22 ++++++++++++---------- W.hs | 1 + thunk.cabal | 2 +- 3 files changed, 14 insertions(+), 11 deletions(-) diff --git a/Main.hs b/Main.hs index 70e2574..7f761f0 100644 --- a/Main.hs +++ b/Main.hs @@ -40,7 +40,7 @@ keys = M.fromList , ((mod1Mask, xK_Tab ), focus 1) , ((mod1Mask, xK_j ), focus 1) , ((mod1Mask, xK_k ), focus (-1)) - , (mod1Mask .|. shiftMask, xK_c ), kill) + , ((mod1Mask .|. shiftMask, xK_c ), kill) , ((mod1Mask .|. shiftMask, xK_q ), io $ exitWith ExitSuccess) ] @@ -58,10 +58,10 @@ main = do , windows = [] } runW initState $ do - root <- io $ rootWindow dpy dflt - io $ do selectInput dpy root (substructureRedirectMask .|. substructureNotifyMask) + r <- io $ rootWindow dpy dflt + io $ do selectInput dpy r (substructureRedirectMask .|. substructureNotifyMask) sync dpy False - registerKeys dpy root + registerKeys dpy r go dpy return () @@ -72,9 +72,9 @@ main = do handle e -- register keys - registerKeys dpy root = forM_ (M.keys keys) $ \(mod,sym) -> io $ do - kc <- keysymToKeycode dpy sym - grabKey dpy kc mod root True grabModeAsync grabModeAsync + registerKeys dpy r = forM_ (M.keys keys) $ \(m,s) -> io $ do + kc <- keysymToKeycode dpy s + grabKey dpy kc m r True grabModeAsync grabModeAsync -- -- The event handler @@ -84,11 +84,13 @@ handle (MapRequestEvent {window = w}) = manage w handle (DestroyWindowEvent {window = w}) = unmanage w handle (UnmapEvent {window = w}) = unmanage w -handle (KeyEvent {event_type = t, state = mod, keycode = code}) +handle (KeyEvent {event_type = t, state = m, keycode = code}) | t == keyPress = do dpy <- gets display - sym <- io $ keycodeToKeysym dpy code 0 - M.lookup (mod,sym) keys + s <- io $ keycodeToKeysym dpy code 0 + case M.lookup (m,s) keys of + Nothing -> return () + Just a -> a handle e@(ConfigureRequestEvent {}) = do dpy <- gets display diff --git a/W.hs b/W.hs index b440c21..d46dc7a 100644 --- a/W.hs +++ b/W.hs @@ -91,6 +91,7 @@ forever a = a >> forever a -- rotate (-1) -- [4,5,6,7,8,1,2,3] -- +rotate :: Int -> [a] -> [a] rotate n xs = take l . drop offset . cycle $ xs where l = length xs diff --git a/thunk.cabal b/thunk.cabal index 4e14716..48f24d0 100644 --- a/thunk.cabal +++ b/thunk.cabal @@ -11,5 +11,5 @@ build-depends: base==2.0, X11>=1.1, X11-extras==0.0, unix==1.0, mtl==1.0 executable: thunk main-is: Main.hs -ghc-options: -O -funbox-strict-fields +ghc-options: -O -funbox-strict-fields -Wall -Werror -optl-Wl,-s extensions: GeneralizedNewtypeDeriving -- cgit v1.2.3