NOTE
The X protocol restricts an unmapped window from holding the input focus.
Another way to grab keyboard focus for a window is to grab all the input for that window.
This can be accomplished in various ways, including the use of the FULLSCREEN package
described in Chapter 15, Nonvisual Objects. However, a much more convenient method is to
use the WIN_GRAB_ALL_INPUT attribute. Setting this attribute to TRUE causes a grab that
forces all input to be directed to that window. Setting it to FALSE releases the grab.
This is useful when you want to display a dialog box having panel items and confirmation or
cancel buttons that the user must respond to before interacting with any other portion of the
application. In this case, you should set the grab on the panel. Be sure to reset this attribute
once it is no longer needed. Also, be careful when you code the segment of the program that
uses the grab, or you might generate a grab you cannot get out of.
6.6.1.3 Selection events
Selection events may be delivered to a window’s event procedure if the window owns a
selection or is making selection requests. Generally, these events should be ignored if the
application is using XView’s
SELECTION package. If the application is doing its own selec-
tions by calling Xlib functions directly, then these events will be of interest.
6.7 Interpreting Client Messages
Client messages may be delivered to your event handler for a variety of reasons. For
instance, the event may have been sent by another source using XSendEvent() ...