fudgets-0.18.3: hsrc/drawing/Expose.hs
module Expose where
import Message
import Cont
--import Command
--import LayoutRequest
import Fudget
--import Xtypes
import Geometry(Rect,rmax)
import FRequest
import Event
--import Font
collectExposeK :: Bool -> Rect -> Int -> ([Rect] -> K a b) -> K a b
collectExposeK grX r aft c = collect [r] aft
where collect rs aft =
if aft == 0 then c rs
else waitForK (\r ->
case r of
Low (XEvt (Expose r aft')) | not grX -> Just (r,aft')
Low (XEvt (GraphicsExpose r aft' _ _)) | grX -> Just (r,aft')
_ -> Nothing) $ \(r,aft')->
collect (r:rs) aft'
maxExposeK grX r aft c = collectExposeK grX r aft $ \rs ->
c (foldl1 rmax rs)