# 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)