XHPGrabDevice(3X)XHPGrabDevice(3X)NAMEXHPGrabDevice - Grab an extended input device.
XHPGrabDeviceButton - Establish a passive grab on a button on an
extension input device.
XHPGrabDeviceKey - Establish a passive grab on a key on an extension
input device.
SYNOPSIS
int XHPGrabDevice (display, deviceid, grab_window, owner_events,
pointer_mode, device_mode, time)
Display *display;
XID deviceid;
Window grab_window;
Bool owner_events;
int pointer_mode, device_mode;
Time time;
int XHPGrabDeviceButton (display, deviceid, button, modifiers, grab_window,
owner_events, event_mask, pointer_mode, device_mode)
Display *display;
XID deviceid;
unsigned int button;
unsigned int modifiers;
Window grab_window;
Bool owner_events;
unsigned int event_mask;
int pointer_mode, device_mode;
int XHPGrabDeviceKey (display, deviceid, keycode, modifiers, grab_window,
owner_events, pointer_mode, device_mode)
Display *display;
XID deviceid;
unsigned int keycode;
unsigned int modifiers;
Window grab_window;
Bool owner_events;
int pointer_mode, device_mode;
ARGUMENTS
display Specifies the connection to the X server.
deviceid Specifies the ID of the desired device.
grab_window Specifies the ID of a window associated with the device
specified above.
owner_events Specifies a boolean value of either True or False.
pointer_mode Only the constant GrabModeAsync is currently supported.
device_mode Only the constant GrabModeAsync is currently supported.
XHPGrabDevice
time Specifies the time. This may be either a timestamp
expressed in milliseconds, or CurrentTime.
XHPGrabDeviceButton
button Specifies the code of the button that is to be grabbed.
You can pass either the keycode or AnyButton.
event_mask Specifies which device events are to be reported to the
client. They can be the bitwise inclusive OR of these
device mask bits: DeviceButtonPressMask,
DeviceButtonReleaseMask, DevicePointerMotionmask,
DeviceKeymapStateMask.
XHPGrabDeviceKey
keycode Valid for XHPGrabDeviceKey only. Specifies the keycode
of the key that is to be grabbed. You can pass either
the keycode or AnyKey.
XHPGrabDeviceKey and XHPGrabDeviceButton Only
modifiers Specifies the set of keymasks. This mask is the bitwise
inclusive OR of these keymask bits: ShiftMask,
LockMask, ControlMask, Mod1Mask, Mod2Mask, Mod3Mask,
Mod4Mask, Mod5Mask.
You can also pass AnyModifier, which is equivalent to issuing the grab
key request for all possible modifier combinations (including the
combination of no modifiers).
DESCRIPTION
These requests are part of an HP-proprietary extension to X. Their
functionality has been superseded by standard X input device extension
requests. You should use XGrabDevice instead of XHPGrabDevice,
XGrabDeviceButton instead of XHPGrabDeviceButton, and XGrabDeviceKey
instead of XHPGrabDeviceKey if possible.
These requests are provided to support the use of input devices other
than the X keyboard and X pointer device. They allow a client to grab
an extension input device, or a button or key on such a device. The
device must have previously been opened (turned on) using the
XHPSetInputDevice request.
XHPGrabDeviceXHPGrabDevice causes an HPDeviceFocusIn event to be sent to the client
doing the grab, and an HPDeviceFocusOut event to be sent to the window
losing the device focus. XHPGrabDevice cannot be used to grab the X
pointer device or the X keyboard device. The core XGrabPointer and
XGrabKeyboard requests should be used for that purpose.
If owner_events is False, events are reported with respect to the
grab_window. If owner_events is True, events are reported normally.
XHPGrabDeviceButton
The XHPGrabDeviceButton request establishes a passive grab on a device.
Consequently, in the future,
· IF the device is not grabbed and the specified button is logically
pressed when the specified modifier keys logically are down (and
no other buttons or modifier keys are down),
· AND the grab window contains the device,
· AND a passive grab on the same device and button/key combination
does not exist on any ancestor of the grab window,
· THEN the device is actively grabbed, as for XHPGrabDevice, the
last-grab time is set to the time at which the button was pressed
(as transmitted in the DeviceButtonPress event), and the
DeviceButtonPress event is reported.
The interpretation of the remaining arguments is as for XHPGrabDevice.
The active grab is terminated automatically when logical state of the
device has all buttons released (independent of the logical state of
the modifier keys).
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.
A modifier of AnyModifier is equivalent to issuing the 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 AnyButton is equivalent to
issuing the request for all possible Buttoncodes. Otherwise, it is not
required that the specified button be assigned to a physical button.
A BadAccess error is generated if some other client has issued a
XHPGrabDeviceButton with the same device and button combination on the
same window. When using AnyModifier or AnyButton, the request fails
completely and the X server generates a BadAccess error and no grabs
are established if there is a conflicting grab for any combination.
XHPGrabDeviceButton can generate BadDevice, BadAccess, BadWindow, and
BadValue errors.
This request cannot be used to grab a button on the X pointer device.
The core XGrabButton request should be used for that purpose.
XHPGrabDeviceKey
The XHPGrabDeviceKey request establishes a passive grab on a device.
Consequently, in the future,
· IF the device is not grabbed and the specified key, which itself
can be a modifier key, is logically pressed when the specified
modifier keys logically are down (and no other keys are down),
· AND no other modifier keys logically are down,
· AND 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 pointer,
· AND a passive grab on the same device and key combination does not
exist on any ancestor of the grab window,
· THEN the device is actively grabbed, as for XHPGrabDevice, the
last-grab time is set to the time at which the key was pressed (as
transmitted in the DeviceKeyPress event), and the DeviceKeyPress
event is reported.
The interpretation of the remaining arguments is as for XHPGrabDevice.
The active grab is terminated automatically when logical state of the
device has the specified key released (independent of the logical state
of the modifier keys).
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.
A modifier of AnyModifier is equivalent to issuing the 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 AnyKey is equivalent to issuing
the request for all possible keycodes. Otherwise, the key must be in
the range specified by min_keycode and max_keycode as returned by
XHPListInputDevices. If it is not within that range, XHPGrabDeviceKey
generates a BadValue error.
A BadAccess error is generated if some other client has issued a
XHPGrabDeviceKey with the same device and key combination on the same
window. When using AnyModifier or AnyKey, the request fails completely
and the X server generates a BadAccess error and no grabs are
established if there is a conflicting grab for any combination.
XHPGrabDeviceKey can generate BadDevice, BadAccess, BadWindow, and
BadValue errors.
This request cannot be used to grab a key on the X keyboard device.
The core XGrabKey request should be used for that purpose.
DIAGNOSTICS
BadDevice An invalid device ID was specified.
BadAccess An grab combination was specified that conflicts with an
existing grab.
BadWindow An invalid window ID was specified.
BadValue An invalid mode was specified.
RETURN VALUE
none
FILES
none
ORIGIN
Hewlett-Packard Company
SEE ALSOXHPListInputDevices(3x)XHPSetInputDevice(3x)XHPUngrabDevice(3x)XGrabKeyboard(3x)XGrabPointer(3x)XGrabButton(3x)X Version 11 Release 5 XHPGrabDevice(3X)