blob: 77f2baf1bdf4b227286c9352700ca2ed752b369c (
about) (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
module Test where
import Xlib
xGetEventMul :: XMArray XDisplay -> IO (Int, XEvent)
xGetEventMul displays =
let n_displays = xMArrayLength displays
loop :: Int -> IO (Int, XEvent)
loop i = if i == n_displays then loop 0
else xMArrayLookup displays i `thenIO` \ display ->
xDisplayForceOutput display `thenIO` \ _ ->
xEventListen display `thenIO` \ n_events ->
if n_events == 0 then loop (i + 1)
else xGetEvent display `thenIO` \ event ->
returnIO (i, event)
in loop 0
|