xcb_grab_pointer(3) | XCB Requests | xcb_grab_pointer(3) |
xcb_grab_pointer - Grab the pointer
#include <xcb/xproto.h>
xcb_grab_pointer_cookie_t xcb_grab_pointer(xcb_connection_t *conn, uint8_t owner_events, xcb_window_t grab_window, uint16_t event_mask, uint8_t pointer_mode, uint8_t keyboard_mode, xcb_window_t confine_to, xcb_cursor_t cursor, xcb_timestamp_t time);
typedef struct xcb_grab_pointer_reply_t {
uint8_t response_type;
uint8_t status;
uint16_t sequence;
uint32_t length; } xcb_grab_pointer_reply_t;
xcb_grab_pointer_reply_t
*xcb_grab_pointer_reply(xcb_connection_t *conn,
xcb_grab_pointer_cookie_t cookie,
xcb_generic_error_t **e);
TODO: which values?
The special value XCB_NONE means don't confine the pointer.
The special value XCB_CURRENT_TIME will be replaced with the current server time.
Actively grabs control of the pointer. Further pointer events are reported only to the grabbing client. Overrides any active pointer grab by this client.
Returns an xcb_grab_pointer_cookie_t. Errors have to be handled when calling the reply function xcb_grab_pointer_reply.
If you want to handle errors in the event loop instead, use xcb_grab_pointer_unchecked. See xcb-requests(3) for details.
/*
* Grabs the pointer actively
*
*/ void my_example(xcb_connection_t *conn, xcb_screen_t *screen, xcb_cursor_t cursor) {
xcb_grab_pointer_cookie_t cookie;
xcb_grab_pointer_reply_t *reply;
cookie = xcb_grab_pointer(
conn,
false, /* get all pointer events specified by the following mask */
screen->root, /* grab the root window */
XCB_NONE, /* which events to let through */
XCB_GRAB_MODE_ASYNC, /* pointer events should continue as normal */
XCB_GRAB_MODE_ASYNC, /* keyboard mode */
XCB_NONE, /* confine_to = in which window should the cursor stay */
cursor, /* we change the cursor to whatever the user wanted */
XCB_CURRENT_TIME
);
if ((reply = xcb_grab_pointer_reply(conn, cookie, NULL))) {
if (reply->status == XCB_GRAB_STATUS_SUCCESS)
printf("successfully grabbed the pointer\n");
free(reply);
} }
Generated from xproto.xml. Contact xcb@lists.freedesktop.org for corrections and improvements.
libxcb 1.15 | X Version 11 |