XtRemoveEventHandler()XtRemoveEventHandler()NameXtRemoveEventHandler - remove an event handler, or change the condi‐
tions under which it is called.
Synopsis
void XtRemoveEventHandler(w, event_mask, nonmaskable, proc,
client_data)
Widget w;
EventMask event_mask;
Boolean nonmaskable;
XtEventHandler proc;
XtPointer client_data;
Inputs
w Specifies the widget for which this handler is registered.
Must be of class Core or any subclass thereof.
event_mask
Specifies the events for which to unregister this handler.
nonmaskable
Specifies whether this handler should be unregistered for
nonmaskable events.
proc Specifies the handler procedure.
client_data
Specifies the client data with which the procedure was regis‐
tered.
DescriptionXtRemoveEventHandler() stops the proc/client_data event handler pair
registered with XtAddEventHandler() or XtInsertEventHandler() from
being called from widget w in response to the events specified in
event_mask. In addition, if nonmaskable is True, then the handler will
no longer be called in response to the nonmaskable events: GraphicsEx‐
pose, NoExpose, SelectionClear, SelectionRequest, SelectionNotify,
ClientMessage, and MappingNotify.
A handler is removed only if both the procedure proc and client_data
match a previously registered handler/data pair. If a handler to be
removed fails to match a procedure, or if it has been registered with a
different value of client_data, XtRemoveEventHandler() returns without
reporting an error.
XtRemoveEventHandler() accepts the special value XtAllEvents in the
event_handler argument as a signal that the event handler should no
longer be called in response to any maskable events. This value should
not be combined with other event mask bits, and should not be used to
select events in other functions.
If the widget is realized, and no other handler requires events of any
of the specified types, XtRemoveEventHandler() calls XSelectInput(), as
necessary to prevent the widget from receiving further events of those
types.
Usage
Note that XtRemoveEventHandler() does not necessarily remove an event
handler; rather, it modifies the conditions for which it is called. To
prevent an event handler from being called at all, call XtRemoveEven‐
tHandler() with an event_mask of XtAllEvents and with nonmaskable
True.
To remove or change the event mask for a "raw" event handler registered
with XtAddRawEventHandler() or XtInsertRawEventHandler(), use
XtRemoveRawEventHandler().
Structures
Each of the event types listed in the table below set a single bit in
an event mask. The event_mask argument is formed by combining these
symbols with the bitwise OR operator ( ). Note that the nonmaskable
event types do not appear in this table and cannot be requested in an
event mask.
NoEventMask Button1MotionMask StructureNotifyMask
KeyPressMask Button2MotionMask ResizeRedirectMask
KeyReleaseMask Button3MotionMask SubstructureNotifyMask
ButtonPressMask Button4MotionMask SubstructureRedirectMask
ButtonReleaseMask Button5MotionMask FocusChangeMask
EnterWindowMask ButtonMotionMask PropertyChangeMask
LeaveWindowMask KeymapStateMask ColormapChangeMask
PointerMotionMask ExposureMask OwnerGrabButtonMask
PointerMotionHintMask VisibilityChangeMask
See Appendix C, Event Reference, for more information on event types and
masks.
In addition to these standard X event masks, the Intrinsics define a
special value for use by this function:
/* XtAllEvents is valid only for XtRemoveEventHandler and
* XtRemoveRawEventHandler; don't use it to select events!
*/
#define XtAllEvents ((EventMask) -1L)
See AlsoXtAddEventHandler(1), XtInsertEventHandler(1), XtRemoveRawEven‐
tHandler(1),
XtEventHandler(2).
Xt - Event Handling XtRemoveEventHandler()