From f2d3bad664167346c048285bb2cd6d69608211a5 Mon Sep 17 00:00:00 2001 From: Don Stewart Date: Fri, 9 Mar 2007 07:01:39 +0100 Subject: -12 lines, refactor darcs-hash:20070309060139-9c5c1-451727d42c18072aaaf9224074b7225165d40713.gz --- Main.hs | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) (limited to 'Main.hs') diff --git a/Main.hs b/Main.hs index 76fd0d7..3d77aad 100644 --- a/Main.hs +++ b/Main.hs @@ -54,7 +54,7 @@ keys = M.fromList $ , (f, m) <- [(view, 0), (tag, shiftMask)]] -- --- let's get underway +-- The main entry point -- main :: IO () main = do @@ -76,14 +76,11 @@ main = do forM_ ws $ \w -> do wa <- io $ getWindowAttributes dpy w when (waMapState wa == waIsViewable) (manage w) - go dpy - + forever $ handle =<< io (allocaXEvent $ \ev -> + nextEvent dpy ev >> getEvent ev) return () where - -- The main loop - go dpy = forever $ do - e <- io $ allocaXEvent $ \ev -> nextEvent dpy ev >> getEvent ev - handle e + forever a = a >> forever a -- | Grab the keys back grabKeys :: Display -> Window -> W () @@ -168,9 +165,9 @@ reveal w = withDisplay $ \d -> io $ moveWindow d w 0 0 windows :: (WorkSpace -> WorkSpace) -> W () windows f = do modify $ \s -> s { workspace = f (workspace s) } - ws <- gets workspace refresh - trace (show ws) -- log state changes to stderr + -- ws <- gets workspace + -- trace (show ws) -- log state changes to stderr -- --------------------------------------------------------------------- -- Window operations @@ -200,7 +197,7 @@ focus = windows . W.rotate kill :: W () kill = withDisplay $ \d -> do ws <- gets workspace - whenJust (W.peek ws) $ io_ . killClient d + whenJust (W.peek ws) $ \w -> io (killClient d w) >> return () -- | tag. Move a window to a new workspace tag :: Int -> W () -- cgit v1.2.3