From 27b1bcc97eb5893c38bfe5593a9e4661cc003994 Mon Sep 17 00:00:00 2001 From: Don Stewart Date: Fri, 9 Mar 2007 14:41:49 +0100 Subject: alloc the event space only once darcs-hash:20070309134149-9c5c1-34d0f84463d4f1a35e9769398c98025ab7d140fa --- Main.hs | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/Main.hs b/Main.hs index 24f7b89..edade6f 100644 --- a/Main.hs +++ b/Main.hs @@ -67,14 +67,15 @@ main = do , workspace = W.empty workspaces } - runW initState $ do + allocaXEvent $ \ev -> + runW initState $ do r <- io $ rootWindow dpy dflt - io $ do selectInput dpy r $ substructureRedirectMask - .|. substructureNotifyMask - .|. enterWindowMask - .|. leaveWindowMask + io $ sync dpy False + io $ selectInput dpy r $ substructureRedirectMask + .|. substructureNotifyMask + .|. enterWindowMask + .|. leaveWindowMask - sync dpy False grabKeys dpy r (_, _, ws) <- io $ queryTree dpy r @@ -84,8 +85,9 @@ main = do when (not (waOverrideRedirect wa) && waMapState wa == waIsViewable) (manage w) - forever $ handle =<< io (allocaXEvent $ \ev -> - nextEvent dpy ev >> getEvent ev) + io $ sync dpy False + forever $ handle =<< io (nextEvent dpy ev >> getEvent ev) + return () where forever a = a >> forever a -- cgit v1.2.3