diff --git a/ueforth/common/grf_test.fs b/ueforth/common/grf_test.fs index d9ba93d..60daa2b 100755 --- a/ueforth/common/grf_test.fs +++ b/ueforth/common/grf_test.fs @@ -33,6 +33,7 @@ internals ." CHAR: " last-char . cr then ) + MOTION event = EXPOSED event = or if 0 to color 0 0 width height box g{ vertical-flip @@ -52,6 +53,7 @@ internals }g }g flip + then event FINISHED = until bye ; diff --git a/ueforth/posix/grf.fs b/ueforth/posix/grf.fs index 68b97cf..505adec 100644 --- a/ueforth/posix/grf.fs +++ b/ueforth/posix/grf.fs @@ -82,8 +82,11 @@ StructureNotifyMask or constant EVENT-MASK IDLE to event xevent [ xany ] ->type sl@ to xevent-type Expose xevent-type = if - EXPOSED to event - exit + [ xexposure ] + xevent ->count @ 0= if + EXPOSED to event + exit + then then ConfigureNotify xevent-type = if RESIZED to event diff --git a/ueforth/posix/x11.fs b/ueforth/posix/x11.fs index 14d0598..b04b915 100644 --- a/ueforth/posix/x11.fs +++ b/ueforth/posix/x11.fs @@ -142,6 +142,20 @@ struct XConfigureEvent bool field ->override_redirect previous definitions +vocabulary xexposure also xexposure definitions +struct XExposeEvent + i32 field ->type + long field ->serial + bool field ->send_event + ptr field ->display + win field ->window + i32 field ->x + i32 field ->y + i32 field ->width + i32 field ->height + i32 field ->count +previous definitions + 0 constant NoEventMask 1 : xmask dup constant 2* ; xmask KeyPressMask