diff options
author | Guido van Rossum <guido@python.org> | 1991-08-16 13:28:28 (GMT) |
---|---|---|
committer | Guido van Rossum <guido@python.org> | 1991-08-16 13:28:28 (GMT) |
commit | 7045dd04d760105f9ddcc23fad1939c3a071f4bc (patch) | |
tree | 65035fcba1c5a284306d0b88afcc70a5f5b84d36 /Lib/stdwin/stdwinq.py | |
parent | 784ca6c835b6e872313532b2df482671d7c68916 (diff) | |
download | cpython-7045dd04d760105f9ddcc23fad1939c3a071f4bc.zip cpython-7045dd04d760105f9ddcc23fad1939c3a071f4bc.tar.gz cpython-7045dd04d760105f9ddcc23fad1939c3a071f4bc.tar.bz2 |
Initial revision
Diffstat (limited to 'Lib/stdwin/stdwinq.py')
-rwxr-xr-x | Lib/stdwin/stdwinq.py | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/Lib/stdwin/stdwinq.py b/Lib/stdwin/stdwinq.py new file mode 100755 index 0000000..af72986 --- /dev/null +++ b/Lib/stdwin/stdwinq.py @@ -0,0 +1,53 @@ +# Replacements for getevent() and pollevent(), +# and new functions ungetevent() and sync(). + + +# Every library module should ideally use this instead of +# stdwin.{get,poll}event(), so applications can use the services +# of ungetevent() and sync(). + + +import stdwin + + +# Events read ahead are stored in this queue. +# +queue = [] + + +# Replacement for getevent(). +# +def getevent(): + if queue: + event = queue[0] + del queue[0] + return event + else: + return stdwin.getevent() + + +# Replacement for pollevent(). +# +def pollevent(): + if queue: + return getevent() + else: + return stdwin.pollevent() + + +# Push an event back in the queue. +# +def ungetevent(event): + queue.insert(0, event) + + +# Synchronize the display. It turns out that this is the way to +# force STDWIN to call XSync(), which some (esoteric) applications need. +# (This is stronger than just flushing -- it actually waits for a +# positive response from the X server on the last command issued.) +# +def sync(): + while 1: + event = stdwin.pollevent() + if not event: break + queue.append(event) |