---
name: "XChangePointerDevice"
section: "3x"
platform: "linux"
package: "libxi-dev"
version: "4.3.0.dfsg.1-14sarge7"
release: "Debian 3.1 (Sarge)"
platforms: ["linux"]
url: "https://new.carta.tech/XChangePointerDevice/3x"
---

# XChangePointerDevice(3x)

change which device is the X pointer

## 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*
