summaryrefslogtreecommitdiff
path: root/man/XGrabDeviceButton.man
diff options
context:
space:
mode:
Diffstat (limited to 'man/XGrabDeviceButton.man')
-rw-r--r--man/XGrabDeviceButton.man217
1 files changed, 217 insertions, 0 deletions
diff --git a/man/XGrabDeviceButton.man b/man/XGrabDeviceButton.man
new file mode 100644
index 0000000..bb42011
--- /dev/null
+++ b/man/XGrabDeviceButton.man
@@ -0,0 +1,217 @@
+.\"
+.\" 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: XGrDvBut.man,v 1.4 2001/03/16 17:51:13 pookie Exp $
+.ds xL Programming With Xlib
+.TH XGrabDeviceButton 3X11 "Release 6.6" "X Version 11" "X FUNCTIONS"
+.SH NAME
+XGrabDeviceButton, XUngrabDeviceButton \- grab/ungrab extension input device buttons
+.SH SYNTAX
+\fB
+.nf
+XGrabDeviceButton\^(\^\fIdisplay\fP, \fIdevice\fP\^, \fIbutton\fP\^, \fImodifiers\fP\^, \fImodifier_device\fP\^, \fIgrab_window\fP\^,
+\fIowner_events\fP\^, \fIevent_count\fP\^, \fIevent_list\fP\^, \fIthis_device_mode\fP\^, \fIother_devices_mode\fP\^)
+ Display *\fIdisplay\fP\^;
+ XDevice *\fIdevice\fP\^;
+ unsigned int \fIbutton\fP\^;
+ unsigned int \fImodifiers\fP\^;
+ XDevice *\fImodifier_device\fP\^;
+ Window \fIgrab_window\fP\^;
+ Bool \fIowner_events\fP\^;
+ unsigned int \fIevent_count\fP\^;
+ XEventClass *\fIevent_list\fP\^;
+ int \fIthis_device_mode\fP\^, \fIother_devices_mode\fP\^;
+
+XUngrabDeviceButton\^(\^\fIdisplay\fP\^, \fIdevice\fP\^, \fIbutton\fP\^, \fImodifiers\fP\^, \fImodifier_device\fP\^, \fIgrab_window\fP\^)
+ Display *\fIdisplay\fP\^;
+ XDevice *\fIdevice\fP\^;
+ unsigned int \fIbutton\fP\^;
+ unsigned int \fImodifiers\fP\^;
+ XDevice *\fImodifier_device\fP\^;
+ Window \fIgrab_window\fP\^;
+.fi
+\fP
+.SH ARGUMENTS
+.ds Bu grabbed or released
+.TP 12
+.I display
+Specifies the connection to the X server.
+.TP 12
+.I device
+Specifies the device that is to be \*(Bu
+.TP 12
+.I button
+Specifies the device button that is to be \*(Bu or
+\fIAnyButton\fP.
+.TP 12
+.I modifiers
+Specifies the set of keymasks or
+\fIAnyModifier\fP.
+The mask is the bitwise inclusive OR of the valid keymask bits.
+Valid bits are: Shiftmask, LockMask, ControlMask, Mod1Mask, Mod2Mask,
+Mod3Mask, Mod4Mask, Mod5Mask.
+.TP 12
+.I modifier_device
+specifies the device whose modifiers are to be used. If the modifier_device
+specified is NULL, the X keyboard will be used as the modifier_device.
+.TP 12
+.I grab_window
+Specifies the grab window.
+.TP 12
+.I owner_events
+Specifies a Boolean value that indicates whether the device
+events 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 event classes in the event list.
+.TP 12
+.I event_list
+Specifies which events are reported to the client.
+.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 all other devices.
+You can pass \fIGrabModeSync\fP or \fIGrabModeAsync\fP.
+.SH DESCRIPTION
+The \fIXGrabDeviceButton\fP request establishes a passive grab.
+In the future,
+the device is actively grabbed (as for \fIXGrabDevice\fP,
+the last-grab time is set to the time at which the button was pressed
+(as transmitted in the
+\fIDeviceButtonPress\fP
+event), and the
+\fIDeviceButtonPress\fP
+event is reported if all of the following conditions are true:
+.IP \(bu 5
+The device is not grabbed, and the specified button is logically pressed
+when the specified modifier keys are logically down on the specified
+modifier device
+and no other buttons or modifier keys are logically down.
+.IP \(bu 5
+Either the grab window is an ancestor of (or is) the focus window, OR
+the grab window is a descendent of the focus window and contains the
+device.
+.IP \(bu 5
+A passive grab on the same button/modifier combination does not exist
+on any ancestor of grab_window.
+.LP
+The interpretation of the remaining arguments is as for
+\fIXGrabDevice\fP.
+The active grab is terminated automatically when the logical state of the
+device has all buttons released
+(independent of the logical state of the modifier keys).
+.LP
+Note that the logical state of a device (as seen by client applications)
+may lag the physical state if device event processing is frozen.
+.LP
+This request overrides all previous grabs by the same client on the same
+button/modifier combinations on the same window.
+A modifiers of
+\fIAnyModifier\fP
+is equivalent to issuing the grab request for all
+possible modifier combinations (including the combination of no modifiers).
+It is not required that all modifiers specified have currently assigned
+KeyCodes.
+A button of
+\fIAnyButton\fP
+is equivalent to
+issuing the request for all possible buttons.
+Otherwise, it is not required that the specified button currently be assigned
+to a physical button.
+.LP
+A modifier_device of NULL indicates that the X keyboard is to be used as the
+modifier_device.
+.LP
+If some other client has already issued a
+\fIXGrabDeviceButton\fP
+with the same button/modifier combination on the same window, a
+\fIBadAccess\fP
+error results.
+When using
+\fIAnyModifier\fP
+or
+\fIAnyButton\fP ,
+the request fails completely,
+and a
+\fIBadAccess\fP
+error results (no grabs are
+established) if there is a conflicting grab for any combination.
+\fIXGrabDeviceButton\fP
+has no effect on an active grab.
+.LP
+\fIXGrabDeviceButton\fP
+can generate
+\fIBadClass\fP,
+\fIBadDevice\fP,
+\fIBadMatch\fP,
+\fIBadValue\fP,
+and
+\fIBadWindow\fP
+errors.
+.P
+The \fIXUngrabDeviceButton\fP
+request releases the passive grab for a
+button/modifier combination on the specified window if
+it was grabbed by this client.
+A modifier of \fIAnyModifier\fP is
+equivalent to issuing
+the ungrab request for all possible modifier combinations, including
+the combination of no modifiers.
+A button of
+\fIAnyButton\fP
+is equivalent to issuing the
+request for all possible buttons.
+\fIXUngrabDeviceButton\fP
+has no effect on an active grab.
+.LP
+A modifier_device of NULL indicates that the X keyboard should be used as
+the modifier_device.
+.LP
+\fIXUngrabDeviceButton\fP
+can generate
+\fIBadDevice\fP,
+\fIBadMatch\fP,
+\fIBadValue\fP
+and
+\fIBadWindow\fP
+errors.
+.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
+\fIBadMatch\fP
+This error may occur if an \fIXGrabDeviceButton\fP request was made
+specifying
+a device that has no buttons, or specifying a modifier device
+that has no keys.
+.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),
+.br
+XGrabDevice(3X),
+.br
+XGrabDeviceKey(3X),
+.br
+\fI\*(xL\fP