---
name: "xcb_input_xi_query_pointer"
section: "3"
platform: "linux"
package: "libxcb"
version: "1.17.0-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/xcb_input_xi_query_pointer"
---

# xcb\_input\_xi\_query\_pointer(3)

## NAME

xcb\_input\_xi\_query\_pointer -

## SYNOPSIS

**#include \<xcb/xinput.h\>**

### Request function

xcb\_input\_xi\_query\_pointer\_cookie\_t **xcb\_input\_xi\_query\_pointer**(xcb\_connection\_t \**conn*, xcb\_window\_t *window*, xcb\_input\_device\_id\_t *deviceid*);

### Reply datastructure

```

typedef struct xcb_input_xi_query_pointer_reply_t {
    uint8_t                   response_type;
    uint8_t                   pad0;
    uint16_t                  sequence;
    uint32_t                  length;
    xcb_window_t              root;
    xcb_window_t              child;
    xcb_input_fp1616_t        root_x;
    xcb_input_fp1616_t        root_y;
    xcb_input_fp1616_t        win_x;
    xcb_input_fp1616_t        win_y;
    uint8_t                   same_screen;
    uint8_t                   pad1;
    uint16_t                  buttons_len;
    xcb_input_modifier_info_t mods;
    xcb_input_group_info_t    group;
} xcb_input_xi_query_pointer_reply_t;
```

### Reply function

xcb\_input\_xi\_query\_pointer\_reply\_t \***xcb\_input\_xi\_query\_pointer\_reply**(xcb\_connection\_t \**conn*, xcb\_input\_xi\_query\_pointer\_cookie\_t *cookie*, xcb\_generic\_error\_t \*\**e*);

### Reply accessors

uint32\_t \***xcb\_input\_xi\_query\_pointer\_buttons**(const xcb\_input\_xi\_query\_pointer\_request\_t \**reply*);

int **xcb\_input\_xi\_query\_pointer\_buttons\_length**(const xcb\_input\_xi\_query\_pointer\_reply\_t \**reply*);

xcb\_generic\_iterator\_t **xcb\_input\_xi\_query\_pointer\_buttons\_end**(const xcb\_input\_xi\_query\_pointer\_reply\_t \**reply*);\

## REQUEST ARGUMENTS

- *conn*

  The XCB connection to X11.

- *window*

  TODO: NOT YET DOCUMENTED.

- *deviceid*

  TODO: NOT YET DOCUMENTED.

## REPLY FIELDS

- *response\_type*

  The type of this reply, in this case *XCB\_INPUT\_XI\_QUERY\_POINTER*. This field is also present in the *xcb\_generic\_reply\_t* and can be used to tell replies apart from each other.

- *sequence*

  The sequence number of the last request processed by the X11 server.

- *length*

  The length of the reply, in words (a word is 4 bytes).

- *root*

  TODO: NOT YET DOCUMENTED.

- *child*

  TODO: NOT YET DOCUMENTED.

- *root\_x*

  TODO: NOT YET DOCUMENTED.

- *root\_y*

  TODO: NOT YET DOCUMENTED.

- *win\_x*

  TODO: NOT YET DOCUMENTED.

- *win\_y*

  TODO: NOT YET DOCUMENTED.

- *same\_screen*

  TODO: NOT YET DOCUMENTED.

- *buttons\_len*

  TODO: NOT YET DOCUMENTED.

- *mods*

  TODO: NOT YET DOCUMENTED.

- *group*

  TODO: NOT YET DOCUMENTED.

## DESCRIPTION

## RETURN VALUE

Returns an *xcb\_input\_xi\_query\_pointer\_cookie\_t*. Errors have to be handled when calling the reply function *xcb\_input\_xi\_query\_pointer\_reply*.

If you want to handle errors in the event loop instead, use *xcb\_input\_xi\_query\_pointer\_unchecked*. See **[xcb-requests(3)](/xcb-requests/3.md)** for details.

## ERRORS

This request does never generate any errors.

## SEE ALSO

## AUTHOR

Generated from xinput.xml. Contact xcb@lists.freedesktop.org for corrections and improvements.
