garton@cunixa.cc.columbia.edu (Bradford Garton) (04/30/89)
I'm posting this for a colleague, please respond to the addresses listed below. How can an application with multiple subwindows set itself to ignore ALL non-Expose events for a given duration (during which some heavy calculation is being done) without grabbing the pointer and thus making it impossible for the user to access other applications? This seems like a common situation: a time-consuming subroutine is called, and the application does not wish to build up a queue of button- and key-press events during the interim, and the user should be free to do something else in another window. It seems that XGrabPointer() should have an option to only grab pointer events that occur within the bounds of the grab_window rather than forcing the user to wait on the one application to finish its subroutines. At first I thought I could put a flag at the top of the loop -- but since the top of the loop is not reached until AFTER the subroutine finishes, the flag would already be turned off by the time the top is reached...and the events are already waiting in queue there. Am I missing something obvious? Please feel free to respond by email or here to the net. Thank you in advance. Doug Scott Columbia University Computer Music Center doug@woof.columbia.edu
klee@daisy.UUCP (Ken Lee) (05/02/89)
In article <1463@cunixc.cc.columbia.edu> doug@woof.columbia.edu (Doug Scott) writes:
=> How can an application with multiple subwindows set itself to ignore ALL
=> non-Expose events for a given duration
How about just setting a different event mask for your windows with
XSelectInput()?
--
Ken Lee
Daisy Systems Corp., Interactive Graphics Tools Dept.
Internet and Smail: klee@daisy.uucp
uucp: uunet!daisy!klee