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

# XDefineCursor(3x)

define cursors

## NAME

XDefineCursor, XUndefineCursor - define cursors

## SYNTAX

int XDefineCursor(Display \**display*, Window *w*, Cursor *cursor*);

int XUndefineCursor(Display \**display*, Window *w*);

## ARGUMENTS

- *cursor*

  Specifies the cursor that is to be displayed or *None*.

- *display*

  Specifies the connection to the X server.

- *w*

  Specifies the window.

## DESCRIPTION

If a cursor is set, it will be used when the pointer is in the window. If the cursor is *None*, it is equivalent to *XUndefineCursor*.

*XDefineCursor* can generate *BadCursor* and *BadWindow* errors.

The *XUndefineCursor* function undoes the effect of a previous *XDefineCursor* for this window. When the pointer is in the window, the parent's cursor will now be used. On the root window, the default cursor is restored.

*XUndefineCursor* can generate a *BadWindow* error.

## DIAGNOSTICS

- *BadAlloc*

  The server failed to allocate the requested resource or server memory.

- *BadCursor*

  A value for a Cursor argument does not name a defined Cursor.

- *BadWindow*

  A value for a Window argument does not name a defined Window.

## SEE ALSO

XCreateFontCursor(3X11), XRecolorCursor(3X11)\
 *Xlib - C Language X Interface*
