module Xmobar.X11.Events(nextEvent') where
import qualified Control.Concurrent as C
import qualified System.Posix.Types as T
import qualified Graphics.X11.Xlib as X
nextEvent' :: X.Display -> X.XEventPtr -> IO ()
nextEvent' :: Display -> XEventPtr -> IO ()
nextEvent' Display
d XEventPtr
p = do
CInt
pend <- Display -> IO CInt
X.pending Display
d
if CInt
pend forall a. Eq a => a -> a -> Bool
/= CInt
0
then Display -> XEventPtr -> IO ()
X.nextEvent Display
d XEventPtr
p
else do
Fd -> IO ()
C.threadWaitRead (CInt -> Fd
T.Fd CInt
fd)
Display -> XEventPtr -> IO ()
nextEvent' Display
d XEventPtr
p
where
fd :: CInt
fd = Display -> CInt
X.connectionNumber Display
d