summaryrefslogtreecommitdiff
path: root/man/XGrabDeviceKey.man
diff options
context:
space:
mode:
authorKaleb Keithley <kaleb@freedesktop.org>2003-11-14 15:54:38 +0000
committerKaleb Keithley <kaleb@freedesktop.org>2003-11-14 15:54:38 +0000
commit981020ce68e4c8d9c0dafba631b0fd3328d7fc59 (patch)
treef275214d5531567e7efa08523a5b985bfbde887c /man/XGrabDeviceKey.man
R6.6 is the Xorg base-lineXORG-MAIN
Diffstat (limited to 'man/XGrabDeviceKey.man')
-rw-r--r--man/XGrabDeviceKey.man231
1 files changed, 231 insertions, 0 deletions
diff --git a/man/XGrabDeviceKey.man b/man/XGrabDeviceKey.man
new file mode 100644
index 0000000..4f92451
--- /dev/null
+++ b/man/XGrabDeviceKey.man
@@ -0,0 +1,231 @@
+.\"
+.\" 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: XGrDvKey.man,v 1.4 2001/03/16 17:51:13 pookie Exp $
+.ds xL Programming with Xlib
+.TH XGrabDeviceKey 3X11 "Release 6.6" "X Version 11" "X FUNCTIONS"
+.SH NAME
+XGrabDeviceKey, XUngrabDeviceKey \- grab/ungrab extension input device Keys
+.SH SYNTAX
+XGrabDeviceKey\^(\^\fIdisplay\fP, \fIdevice\fP\^, \fIKey\fP\^, \fImodifiers\fP\^,
+\fImodifier_device\fP\^, \fIgrab_window\fP\^, \fIowner_events\fP\^,
+.br
+\fIevent_count\fP\^, \fIevent_list\fP\^, \fIthis_device_mode\fP\^,
+\fIother_devices_mode\fP\^)
+.br
+ Display *\fIdisplay\fP\^;
+.br
+ XDevice *\fIdevice\fP\^;
+.br
+ unsigned int \fIKey\fP\^;
+.br
+ unsigned int \fImodifiers\fP\^;
+.br
+ XDevice *\fImodifier_device\fP\^;
+.br
+ Window \fIgrab_window\fP\^;
+.br
+ Bool \fIowner_events\fP\^;
+.br
+ unsigned int \fIevent_count\fP\^;
+.br
+ XEventClass \fIevent_list\fP\^;
+.br
+ int \fIthis_device_mode\fP\^, \fIother_devices_mode\fP\^;
+.sp
+XUngrabDeviceKey\^(\fIdisplay\fP\^, \fIdevice\fP\^, \fIKey\fP\^, \fImodifiers\fP\^,
+\fImodifier_device\fP\^, \fIgrab_window\fP\^)
+.br
+ Display *\fIdisplay\fP\^;
+.br
+ XDevice *\fIdevice\fP\^;
+.br
+ unsigned int \fIKey\fP\^;
+.br
+ unsigned int \fImodifiers\fP\^;
+.br
+ XDevice *\fImodifier_device\fP\^;
+.br
+ Window \fIgrab_window\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 Key
+Specifies the device Key that is to be \*(Bu or
+\fIAnyKey\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 a modifier_device of
+NULL is specified, 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 device 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 other devices.
+You can pass
+\fIGrabModeSync\fP
+or
+\fIGrabModeAsync\fP.
+.SH DESCRIPTION
+The \fIXGrabDeviceKey\fP request establishes a passive grab.
+In the future,
+the device is actively grabbed (as for
+\fIXGrabDevice\fP,
+the last-device-grab time is set to the time at which the Key was pressed
+(as transmitted in the
+\fIDeviceKeyPress\fP
+event), and the
+\fIDeviceKeyPress\fP
+event is reported if all of the following conditions are true:
+.IP \(bu 5
+The device is not grabbed, and the specified key is logically pressed
+when the specified modifier keys are logically down,
+and no other keys or modifier keys are logically down.
+.IP \(bu 5
+The grab_window is an ancestor (or is) the focus window OR the grab
+window is a descendant of the focus window and contains the device.
+.IP \(bu 5
+The confine_to window (if any) is viewable.
+.IP \(bu 5
+A passive grab on the same key/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 the specified key released.
+.LP
+Note that the logical state of a device (as seen by means of the X protocol )
+may lag the physical state if device event processing is frozen.
+.LP
+If the key is not \fIAnyKey\fP, it must be in the range specified by
+min_keycode and max_keycode as returned by the \fIXListInputDevices\fP
+request. Otherwise, a \fIBadValue\fP error results.
+.LP
+This request overrides all previous grabs by the same client on the same
+Key/modifier combinations on the same window.
+A modifier 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 key of
+\fIAnyKey\fP
+is equivalent to
+issuing the request for all possible keys.
+Otherwise, it is not required that the specified key currently be assigned
+to a physical Key.
+.LP
+If a modifier_device of NULL is specified, the X keyboard will be used as
+the modifier_device.
+.LP
+If some other client has already issued a
+\fIXGrabDeviceKey\fP
+with the same Key/modifier combination on the same window, a
+\fIBadAccess\fP
+error results.
+When using
+\fIAnyModifier\fP
+or
+\fIAnyKey\fP ,
+the request fails completely,
+and a
+\fIBadAccess\fP
+error results (no grabs are
+established) if there is a conflicting grab for any combination.
+\fIXGrabDeviceKey\fP
+has no effect on an active grab.
+.LP
+\fIXGrabDeviceKey\fP
+can generate
+\fIBadAccess\fP,
+\fIBadClass\fP,
+\fIBadDevice\fP,
+\fIBadMatch\fP,
+\fIBadValue\fP,
+and
+\fIBadWindow\fP
+errors. It returns \fISuccess\fP on successful completion of the request.
+.P
+The \fIXUngrabDeviceKey\fP
+request releases the passive grab for a key/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 Key of \fIAnyKey\fP
+is equivalent to issuing the request for all possible Keys.
+\fIXUngrabDeviceKey\fP has no effect on an active grab.
+.LP
+If a modifier_device of NULL is specified, the X keyboard will be used as the
+modifier_device.
+.LP
+\fIXUngrabDeviceKey\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 \fIXGrabDeviceKey\fP request was made
+specifying a device that has no keys, or 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
+XGrabDeviceButton(3X),
+.br
+.br
+\fI\*(xL\fP