[comp.windows.x] Blocking Application Events

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