2010-05-18 13:28:54 -06:00
|
|
|
XALLOWDEVICEEVENTS(libmansuffix)
|
|
|
|
================================
|
|
|
|
|
|
|
|
NAME
|
|
|
|
----
|
|
|
|
|
|
|
|
XAllowDeviceEvents - release queued events
|
|
|
|
|
|
|
|
SYNOPSIS
|
|
|
|
------
|
|
|
|
|
|
|
|
#include <X11/extensions/XInput.h>
|
|
|
|
|
|
|
|
int XAllowDeviceEvents( Display *display,
|
|
|
|
XDevice *device,
|
|
|
|
int event_mode,
|
|
|
|
Time time);
|
|
|
|
display
|
|
|
|
Specifies the connection to the X server.
|
|
|
|
|
|
|
|
device
|
|
|
|
Specifies the device from which events are to be
|
|
|
|
allowed.
|
|
|
|
|
|
|
|
event_mode
|
|
|
|
Specifies the event mode.You can pass AsyncThisDevice,
|
|
|
|
SyncThisDevice, ReplayThisDevice, AsyncOtherDevices,
|
|
|
|
SyncAll,or AsyncAll.
|
|
|
|
|
|
|
|
time
|
|
|
|
Specifies the time.You can pass either a timestamp or
|
|
|
|
CurrentTime.
|
|
|
|
|
|
|
|
DESCRIPTION
|
|
|
|
-----------
|
|
|
|
|
2010-11-11 03:49:21 -07:00
|
|
|
The XAllowDeviceEvents function releases some queued events if
|
|
|
|
the client has caused a device to freeze. It has no effect if
|
|
|
|
the specified time is earlier than the last-grab time of the
|
|
|
|
most recent active grab for the client and device, or if the
|
|
|
|
specified time is later than the current X server time.
|
2010-05-18 13:28:54 -06:00
|
|
|
|
2010-11-11 03:49:21 -07:00
|
|
|
The following describes the processing that occurs depending on
|
|
|
|
what constant you pass to the event_mode argument.
|
2010-05-18 13:28:54 -06:00
|
|
|
|
2010-11-11 03:49:21 -07:00
|
|
|
* AsyncThisDevice - If the specified device is frozen by the
|
2010-05-18 13:28:54 -06:00
|
|
|
client, event processing for that device continues as usual. If
|
|
|
|
the device is frozen multiple times by the client on behalf of
|
|
|
|
multiple separate grabs, AsyncThisDevice thaws for
|
|
|
|
all.AsyncThisDevice has no effect if the specified device is
|
|
|
|
not frozen by the client, but the device need not be grabbed by
|
|
|
|
the client.
|
|
|
|
|
2010-11-11 03:49:21 -07:00
|
|
|
* SyncThisDevice - If the specified device is frozen and actively
|
2010-05-18 13:28:54 -06:00
|
|
|
grabbed by the client, event processing for that device
|
|
|
|
continues normally until the next key or button event is
|
|
|
|
reported to the client. At this time, the specified device
|
|
|
|
again appears to freeze. However, if the reported event causes
|
|
|
|
the grab to be released, the specified device does not freeze.
|
|
|
|
SyncThisDevice has no effect if the specified device is not
|
|
|
|
frozen by the client or is not grabbed by the client.
|
|
|
|
|
2010-11-11 03:49:21 -07:00
|
|
|
* ReplayThisDevice - If the specified device is actively grabbed by
|
2010-05-18 13:28:54 -06:00
|
|
|
the client and is frozen as the result of an event having been
|
|
|
|
sent to the client (either from the activation of a
|
|
|
|
GrabDeviceButton or from a previous AllowDeviceEvents with mode
|
|
|
|
SyncThisDevice, but not from a GrabDevice), the grab is
|
|
|
|
released and that event is completely reprocessed. This time,
|
|
|
|
however, the request ignores any passive grabs at or above
|
|
|
|
(toward the root) that the grab-window of the grab just
|
|
|
|
released. The request has no effect if the specified device is
|
|
|
|
not grabbed by the client or if it is not frozen as the result
|
|
|
|
of an event.
|
|
|
|
|
2010-11-11 03:49:21 -07:00
|
|
|
* AsyncOtherDevices - If the remaining devices are frozen by the
|
2010-05-18 13:28:54 -06:00
|
|
|
client, event processing for them continues as usual. If the
|
|
|
|
other devices are frozen multiple times by the client on behalf
|
|
|
|
of multiple grabs, AsyncOtherDevices "thaws" for all.
|
|
|
|
AsyncOtherDevices has no effect if the devices are not frozen
|
|
|
|
by the client.
|
|
|
|
|
2010-11-11 03:49:21 -07:00
|
|
|
* SyncAll - If all devices are frozen by the client, event
|
2010-05-18 13:28:54 -06:00
|
|
|
processing (for all devices) continues normally until the next
|
|
|
|
button or key event is reported to the client for a grabbed
|
|
|
|
device, at which time all devices again appear to freeze.
|
|
|
|
However, if the reported event causes the grab to be released,
|
|
|
|
then the devices do not freeze. If any device is still grabbed,
|
|
|
|
then a subsequent event for it will still cause all devices to
|
|
|
|
freeze. SyncAll has no effect unless all devices are frozen by
|
|
|
|
the client. If any device is frozen twice by the client on
|
|
|
|
behalf of two separate grabs, SyncAll thaws for both. A
|
|
|
|
subsequent freeze for SyncAll will only freeze each device
|
|
|
|
once.
|
|
|
|
|
2010-11-11 03:49:21 -07:00
|
|
|
* AsyncAll - If all devices are frozen by the client, event
|
2010-05-18 13:28:54 -06:00
|
|
|
processing for all devices continues normally. If any device is
|
|
|
|
frozen multiple times by the client on behalf of multiple
|
|
|
|
separate grabs, AsyncAll thaws for all. AsyncAll has no effect
|
|
|
|
unless all devices are frozen by the client.
|
|
|
|
|
2010-11-11 03:49:21 -07:00
|
|
|
AsyncThisDevice, SyncThisDevice, and ReplayThisDevice have no
|
|
|
|
effect on the processing of events from the remaining
|
|
|
|
devices.AsyncOtherDevices has no effect on the processing of
|
|
|
|
events from the specified device. When the event_mode is
|
|
|
|
SyncAll or AsyncAll, the device parameter is ignored.
|
|
|
|
|
|
|
|
It is possible for several grabs of different devices by the
|
|
|
|
same or different clients to be active simultaneously. If a
|
|
|
|
device is frozen on behalf of any grab, no event processing is
|
|
|
|
performed for the device. It is possible for a single device to
|
|
|
|
be frozen because of several grabs. In this case, the freeze
|
|
|
|
must be released on behalf of each grab before events can again
|
|
|
|
be processed.
|
|
|
|
|
|
|
|
XAllowDeviceEvents can generate a BadDevice or BadValue error.
|
2010-05-18 13:28:54 -06:00
|
|
|
|
|
|
|
DIAGNOSTICS
|
|
|
|
-------------
|
|
|
|
|
|
|
|
BadDevice
|
|
|
|
An invalid device was specified. The specified device
|
|
|
|
does not exist or has not been opened by this client via
|
|
|
|
XOpenInputDevice. This error may also occur if the
|
|
|
|
specified device is the X keyboard or X pointer device.
|
|
|
|
|
|
|
|
BadValue
|
|
|
|
An invalid mode was specified on the request.
|
|
|
|
|
|
|
|
SEE ALSO
|
|
|
|
--------
|
|
|
|
|
|
|
|
XGrabDevice(libmansuffix)
|
|
|
|
|