134 lines
5.2 KiB
Plaintext
134 lines
5.2 KiB
Plaintext
|
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
|
||
|
-----------
|
||
|
|
||
|
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.
|
||
|
|
||
|
The following describes the processing that occurs depending on
|
||
|
what constant you pass to the event_mode argument.
|
||
|
|
||
|
AsyncThisDevice If the specified device is frozen by the
|
||
|
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.
|
||
|
|
||
|
SyncThisDevice If the specified device is frozen and actively
|
||
|
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.
|
||
|
|
||
|
ReplayThisDevice If the specified device is actively grabbed by
|
||
|
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.
|
||
|
|
||
|
AsyncOtherDevices If the remaining devices are frozen by the
|
||
|
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.
|
||
|
|
||
|
SyncAll If all devices are frozen by the client, event
|
||
|
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.
|
||
|
|
||
|
AsyncAll If all devices are frozen by the client, event
|
||
|
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.
|
||
|
|
||
|
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.
|
||
|
|
||
|
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)
|
||
|
|