XISelectEvents3
Select for or get selected xi2 events on the window.
Usage
Status XISelectEvents(
Display
*display,
XIEventMask *masks,
int num_masks);
display
masks
num_masks
win
XIEventMask *XIGetSelectedEvents(
Display
*display,
int *num_masks_return);
display
num_masks_return
win
Overview
XI2 events must be selected using XISelectEvents.
XISelectEvents sets the event mask for this client on win. Further events are only reported to this client if the event type matches the selected event mask. The masks overrides the previously selected event mask for the given device.
If deviceid is a valid device, the event mask is selected only for this device. If deviceid is XIAllDevices or XIAllMasterDevices, the event mask is selected for all devices or all master devices, respectively. The effective event mask is the bit-wise OR of the XIAllDevices, XIAllMasterDevices and the respective device's event mask.
typedef struct {
int deviceid;
int mask_len;
unsigned char* mask;
} XIEventMask;
The mask_len specifies the length of mask in bytes. mask is a binary mask in the form of (1 << event type). deviceid must be either a device or XIAllDevices or XIAllMasterDevices. A client may submit several masks with the same deviceid in one request but only the last mask will be effective.
XISelectEvents can generate a BadValue, a BadDevice, and a BadWindow error.
XIGetSelectedEvents returns the events selected by this client on the given window. If no events were selected on this window, XIGetSelectedEvents returns NULL and num_masks_return is set to 0. If an internal error occurs, XIGetSelectedEvents returns NULL and num_masks_return is set to -1. Otherwise, XIGetSelectedEvent returns the selected event masks for all devices including the masks for XIAllDevices and XIAllMasterDevices
The caller must free the returned data using XFree().
Diagnostics
BadValue
A value is outside of the permitted range.
BadWindow
A value for a Window argument does not name a defined
window.
BadDevice
An invalid device was specified. The device does not
exist.
Releases
8 releases since Debian 6.0 (Squeeze); the text changed 5 times.