xcb\_input\_xi\_passive\_grab\_device(3) XCB Requests xcb\_input\_xi\_passive\_grab\_device(3)

# [NAME](#NAME)

xcb\_input\_xi\_passive\_grab\_device -

# [SYNOPSIS](#SYNOPSIS)

**#include &lt;xcb/xinput.h&gt;**

## [Request function](#Request_function)

xcb\_input\_xi\_passive\_grab\_device\_cookie\_t **xcb\_input\_xi\_passive\_grab\_device**(xcb\_connection\_t \**conn*, xcb\_timestamp\_t *time*, xcb\_window\_t *grab\_window*, xcb\_cursor\_t *cursor*, uint32\_t *detail*, xcb\_input\_device\_id\_t *deviceid*, uint16\_t *num\_modifiers*, uint16\_t *mask\_len*, uint8\_t *grab\_type*, uint8\_t *grab\_mode*, uint8\_t *paired\_device\_mode*, uint8\_t *owner\_events*, const uint32\_t \**mask*, const uint32\_t \**modifiers*);

## [Reply datastructure](#Reply_datastructure)

```
typedef struct xcb_input_xi_passive_grab_device_reply_t {


    uint8_t  response_type;


    uint8_t  pad0;


    uint16_t sequence;


    uint32_t length;


    uint16_t num_modifiers;


    uint8_t  pad1[22];
} xcb_input_xi_passive_grab_device_reply_t;
```

## [Reply function](#Reply_function)

xcb\_input\_xi\_passive\_grab\_device\_reply\_t \***xcb\_input\_xi\_passive\_grab\_device\_reply**(xcb\_connection\_t \**conn*, xcb\_input\_xi\_passive\_grab\_device\_cookie\_t *cookie*, xcb\_generic\_error\_t \*\**e*);

## [Reply accessors](#Reply_accessors)

xcb\_input\_grab\_modifier\_info\_t \***xcb\_input\_xi\_passive\_grab\_device\_modifiers**(const xcb\_input\_xi\_passive\_grab\_device\_request\_t \**reply*);

int **xcb\_input\_xi\_passive\_grab\_device\_modifiers\_length**(const xcb\_input\_xi\_passive\_grab\_device\_reply\_t \**reply*);

xcb\_input\_grab\_modifier\_info\_iterator\_t **xcb\_input\_xi\_passive\_grab\_device\_modifiers\_iterator**(const xcb\_input\_xi\_passive\_grab\_device\_reply\_t \**reply*);

# [REQUEST ARGUMENTS](#REQUEST_ARGUMENTS)

[*conn*](#conn)

The XCB connection to X11.

[*time*](#time)

TODO: NOT YET DOCUMENTED.

[*grab\_window*](#grab_window)

TODO: NOT YET DOCUMENTED.

[*cursor*](#cursor)

TODO: NOT YET DOCUMENTED.

[*detail*](#detail)

TODO: NOT YET DOCUMENTED.

[*deviceid*](#deviceid)

TODO: NOT YET DOCUMENTED.

[*num\_modifiers*](#num_modifiers)

TODO: NOT YET DOCUMENTED.

[*mask\_len*](#mask_len)

TODO: NOT YET DOCUMENTED.

[*grab\_type*](#grab_type)

TODO: NOT YET DOCUMENTED.

[*grab\_mode*](#grab_mode)

TODO: NOT YET DOCUMENTED.

[*paired\_device\_mode*](#paired_device_mode)

TODO: NOT YET DOCUMENTED.

[*owner\_events*](#owner_events)

TODO: NOT YET DOCUMENTED.

[*mask*](#mask)

TODO: NOT YET DOCUMENTED.

[*modifiers*](#modifiers)

TODO: NOT YET DOCUMENTED.

# [REPLY FIELDS](#REPLY_FIELDS)

[*response\_type*](#response_type)

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

[*sequence*](#sequence)

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

[*length*](#length)

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

[*num\_modifiers*](#num_modifiers~2)

TODO: NOT YET DOCUMENTED.

# [DESCRIPTION](#DESCRIPTION)

# [RETURN VALUE](#RETURN_VALUE)

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

If you want to handle errors in the event loop instead, use *xcb\_input\_xi\_passive\_grab\_device\_unchecked*. See [**xcb-requests(3)**](/man/os/libxcb/xcb-requests.3) for details.

# [ERRORS](#ERRORS)

This request does never generate any errors.

# [SEE ALSO](#SEE_ALSO)

# [AUTHOR](#AUTHOR)

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

libxcb 1.17.0 X Version 11

---

Document: xcb_input_xi_passive_grab_device_reply(3) from libxcb 1.17.0-r17 (Chainguard OS)
Source: https://gitlab.freedesktop.org/xorg/lib/libxcb.git
