Table of Contents

Name

XChangePointerDevice - change which device is the X pointer

Syntax

Status XChangePointerDevice(Display *display, XDevice
*device, int xaxis, int yaxis);

Arguments

display
Specifies the connection to the X server.
device
Specifies the device to be used as the X pointer.
xaxis
Specifies the axis of the device to be used as the X pointer x-axis.
yaxis
Specifies the axis of the device to be used as the X pointer y-axis.

Description

The XChangePointerDevice request causes the server to use the specified device as the X pointer. The device must have been opened by the client via XOpenDevice or a BadDevice error will result. The device must support input class Valuators or a BadMatch error will result. If the implementation does not support use of the specified device as the X pointer, a BadDevice error will result.

If the specified device is grabbed by another client, AlreadyGrabbed is returned. If the specified device is frozen by a grab on another device, GrabFrozen is returned. If the request is successful, Success is returned.

If the request succeeds, a ChangeDeviceNotify event is sent to all clients that have selected that event. A MappingNotify event with request = MappingPointer is sent to all clients. The specified device becomes the X pointer, and the old X pointer becomes accessible through the input extension protocol requests.

XChangePointerDevice can generate a BadDevice or a BadMatch error.

Diagnostics

BadDevice
An invalid device was specified. The specified device does not exist, has not been opened by this client via XOpenInputDevice, or is already one of the core X input devices (pointer or keyboard). This error may also occur if the server implementation does not support using the specified device as the X pointer.
BadMatch
This error may occur if an XChangePointerDevice request was made specifying a device that has less than two valuators, or specifying a valuator index beyond the range supported by the device.

See Also

XChangeKeyboardDevice
Programming With Xlib


Table of Contents