summaryrefslogtreecommitdiff
path: root/man/XGrabDevice.man
diff options
context:
space:
mode:
Diffstat (limited to 'man/XGrabDevice.man')
-rw-r--r--man/XGrabDevice.man207
1 files changed, 207 insertions, 0 deletions
diff --git a/man/XGrabDevice.man b/man/XGrabDevice.man
new file mode 100644
index 0000000..8a5608c
--- /dev/null
+++ b/man/XGrabDevice.man
@@ -0,0 +1,207 @@
+.\"
+.\" Copyright ([\d,\s]*) by Hewlett-Packard Company, Ardent Computer,
+.\"
+.\" Permission to use, copy, modify, distribute, and sell this documentation
+.\" for any purpose and without fee is hereby granted, provided that the above
+.\" copyright notice and this permission notice appear in all copies.
+.\" Ardent, and Hewlett-Packard make no representations about the
+.\" suitability for any purpose of the information in this document. It is
+.\" provided \`\`as is'' without express or implied warranty.
+.\"
+.\" $Xorg: XGrabDev.man,v 1.4 2001/03/16 17:51:13 pookie Exp $
+.ds xL Programming With Xlib
+.TH XGrabDevice 3X11 "Release 6.6" "X Version 11" "X FUNCTIONS"
+.SH NAME
+XGrabDevice, XUngrabDevice \- grab/release the specified extension device
+.SH SYNTAX
+.nf
+\fB
+int XGrabDevice\^(\^\fIdisplay\fP, \fIdevice\fP\^, \fIgrab_window\fP\^, \fIowner_events\fP\^, \fIevent_count\fP\^, \fIevent_list\fP\^,
+\fIthis_device_mode\fP\^, \fIother_devices_mode\fP\^, \fItime\fP\^)
+ Display *\fIdisplay\fP\^;
+ XDevice *\fIdevice\fP\^;
+ Window \fIgrab_window\fP\^;
+ Bool \fIowner_events\fP\^;
+ int \fIevent_count\fP\^;
+ XEventClass *\fIevent_list\fP\^;
+ int \fIthis_device_mode\fP\^, \fIother_devices_mode\fP\^;
+ Time \fItime\fP\^;
+
+XUngrabDevice\^(\^\fIdisplay\fP, \fIdevice\fP\^, \fItime\fP\^)
+ Display *\fIdisplay\fP\^;
+ XDevice *\fIdevice\fP\^;
+ Time \fItime\fP\^;
+.fi
+\fP
+.SH ARGUMENTS
+.TP 12
+.I display
+Specifies the connection to the X server.
+.TP 12
+.I device
+Specifies the device to be grabbed or released.
+.TP 12
+.I grab_window
+Specifies the id of a window to be associated with the device.
+.TP 12
+.I owner_events
+Specifies a Boolean value that indicates whether the
+events from the device
+are to be reported as usual or reported with respect to the grab window
+if selected by the event list.
+.TP 12
+.I event_count
+Specifies the number of elements in the event_list array.
+.TP 12
+.I event_list
+Specifies a pointer to a list of event classes that indicates which events
+the client wishes to receive. These event classes must have been
+obtained specifying the device being grabbed.
+.TP 12
+.I this_device_mode
+Specifies further processing of events from this device.
+You can pass
+\fIGrabModeSync\fP
+or
+\fIGrabModeAsync\fP.
+.TP 12
+.I other_devices_mode
+Specifies further processing of events from other devices.
+You can pass
+\fIGrabModeSync\fP
+or
+\fIGrabModeAsync\fP.
+.TP 12
+.I time
+Specifies the time.
+You can pass either a timestamp or
+\fICurrentTime\fP.
+.SH DESCRIPTION
+The
+\fIXGrabDevice\fP
+request actively grabs control of the device and generates
+\fIDeviceFocusIn\fP
+and
+\fIDeviceFocusOut\fP
+events.
+Further device events are reported only to the
+grabbing client.
+\fIXGrabDevice\fP
+overrides any active device grab by this client.
+event_list is a pointer to a list of event classes. This list indicates
+which events the client wishes to receive while the grab is active.
+If owner_events is
+\fIFalse\fP ,
+all generated device events are reported with
+respect to grab_window if selected.
+If owner_events is
+\fITrue\fP
+and if a generated
+device event would normally be reported to this client, it is reported
+normally; otherwise, the event is reported with respect to the
+grab_window, and is only reported if specified in the event_list.
+.LP
+If the this_device_mode argument is
+\fIGrabModeAsync\fP ,
+device event processing continues
+as usual.
+If the device is currently frozen by this client,
+then processing of device events is resumed.
+If the this_device_mode argument is
+\fIGrabModeSync\fP ,
+the state of the device (as seen by client applications) appears to freeze,
+and the X server generates no further device events until the
+grabbing client issues a releasing
+\fIXAllowDeviceEvents\fP
+call or until the device grab is released.
+Actual device changes are not lost while the device is frozen;
+they are simply queued in the server for later processing.
+.LP
+If other_devices_mode is
+\fIGrabModeAsync\fP ,
+processing of events from other devices is unaffected
+by activation of the grab.
+If other_devices_mode is
+\fIGrabModeSync\fP,
+the state of all devices except the grabbed device
+ (as seen by client applications) appears to freeze,
+and the X server generates no further events from those devices
+until the grabbing client issues a releasing
+\fIXAllowDeviceEvents\fP
+call or until the device grab is released.
+Actual events are not lost while the devices are frozen;
+they are simply queued in the server for later processing.
+.LP
+If the device is actively grabbed by some other client,
+\fIXGrabDevice\fP
+fails and returns
+\fIAlreadyGrabbed\fP.
+If grab_window is not viewable,
+it fails and returns
+\fIGrabNotViewable\fP.
+If the device is frozen by an active grab of another client,
+it fails and returns
+\fIGrabFrozen\fP.
+If the specified time is earlier than the last-device-grab time
+or later than the current X server time,
+it fails and returns
+\fIGrabInvalidTime\fP.
+Otherwise, the last-device-grab time is set to the specified time
+\fI( CurrentTime\fP
+is replaced by the current X server time).
+.LP
+If a grabbed device is closed by a client while an active grab by that
+client is in effect, the active grab is released. If the device is
+frozen only by an active grab of the requesting client, it is thawed.
+.LP
+\fIXGrabDevice\fP
+can generate
+\fIBadClass\fP, \fIBadDevice\fP, \fIBadValue\fP, and \fIBadWindow\fP
+errors.
+.LP
+The
+\fIXUngrabDevice\fP
+request
+releases the device and any queued events if this client has it actively
+grabbed from either
+\fIXGrabDevice\fP
+or
+\fIXGrabDeviceKey\fP.
+If other devices are frozen by the grab, \fIXUngrabDevice\fP thaws them.
+\fIXUngrabDevice\fP
+does not release the device and any queued events
+if the specified time is earlier than
+the last-device-grab time or is later than the current X server time.
+It also generates
+\fIDeviceFocusIn\fP
+and
+\fIDeviceFocusOut\fP
+events.
+The X server automatically performs an
+\fIUngrabDevice\fP
+request if the event window for an
+active device grab becomes not viewable.
+.LP
+\fIXUngrabDevice\fP
+can generate a \fIBadDevice\fP error.
+.SH DIAGNOSTICS
+.TP 12
+\fIBadDevice\fP
+An invalid device was specified. The specified device does not exist or has
+not been opened by this client via \fIXOpenInputDevice\fP. This error may
+also occur if the specified device is the X keyboard or X pointer device.
+.TP 12
+\fIBadValue\fP
+Some numeric value falls outside the range of values accepted by the request.
+Unless a specific range is specified for an argument, the full range defined
+by the argument's type is accepted. Any argument defined as a set of
+alternatives can generate this error.
+.TP 12
+\fIBadWindow\fP
+A value for a Window argument does not name a defined Window.
+.SH "SEE ALSO"
+XAllowDeviceEvents(3X),
+XGrabDeviceButton(3X),
+XGrabDeviceKey(3X),
+.br
+\fI\*(xL\fP