Merge pull request #792 from emersion/x11-backend-blank-cursor
backend/x11: hide cursor
This commit is contained in:
commit
8b37e8f67a
|
@ -171,6 +171,15 @@ static bool wlr_x11_backend_start(struct wlr_backend *backend) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// create a blank cursor
|
||||||
|
xcb_pixmap_t pix = xcb_generate_id(x11->xcb_conn);
|
||||||
|
xcb_create_pixmap(x11->xcb_conn, 1, pix, x11->screen->root, 1, 1);
|
||||||
|
|
||||||
|
x11->cursor = xcb_generate_id(x11->xcb_conn);
|
||||||
|
xcb_create_cursor(x11->xcb_conn, x11->cursor, pix, pix, 0, 0, 0, 0, 0, 0,
|
||||||
|
0, 0);
|
||||||
|
xcb_free_pixmap(x11->xcb_conn, pix);
|
||||||
|
|
||||||
#ifdef WLR_HAS_XCB_XKB
|
#ifdef WLR_HAS_XCB_XKB
|
||||||
const xcb_query_extension_reply_t *reply =
|
const xcb_query_extension_reply_t *reply =
|
||||||
xcb_get_extension_data(x11->xcb_conn, &xcb_xkb_id);
|
xcb_get_extension_data(x11->xcb_conn, &xcb_xkb_id);
|
||||||
|
@ -239,6 +248,9 @@ static void wlr_x11_backend_destroy(struct wlr_backend *backend) {
|
||||||
|
|
||||||
wlr_egl_finish(&x11->egl);
|
wlr_egl_finish(&x11->egl);
|
||||||
|
|
||||||
|
if (x11->cursor) {
|
||||||
|
xcb_free_cursor(x11->xcb_conn, x11->cursor);
|
||||||
|
}
|
||||||
if (x11->xlib_conn) {
|
if (x11->xlib_conn) {
|
||||||
XCloseDisplay(x11->xlib_conn);
|
XCloseDisplay(x11->xlib_conn);
|
||||||
}
|
}
|
||||||
|
|
|
@ -136,6 +136,10 @@ struct wlr_output *wlr_x11_output_create(struct wlr_backend *backend) {
|
||||||
strlen(title), title);
|
strlen(title), title);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uint32_t cursor_values[] = { x11->cursor };
|
||||||
|
xcb_change_window_attributes(x11->xcb_conn, output->win, XCB_CW_CURSOR,
|
||||||
|
cursor_values);
|
||||||
|
|
||||||
xcb_map_window(x11->xcb_conn, output->win);
|
xcb_map_window(x11->xcb_conn, output->win);
|
||||||
xcb_flush(x11->xcb_conn);
|
xcb_flush(x11->xcb_conn);
|
||||||
|
|
||||||
|
|
|
@ -58,6 +58,9 @@ struct wlr_x11_backend {
|
||||||
// The time we last received an event
|
// The time we last received an event
|
||||||
xcb_timestamp_t time;
|
xcb_timestamp_t time;
|
||||||
|
|
||||||
|
// A blank cursor
|
||||||
|
xcb_cursor_t cursor;
|
||||||
|
|
||||||
#ifdef WLR_HAS_XCB_XKB
|
#ifdef WLR_HAS_XCB_XKB
|
||||||
bool xkb_supported;
|
bool xkb_supported;
|
||||||
uint8_t xkb_base_event;
|
uint8_t xkb_base_event;
|
||||||
|
|
Loading…
Reference in New Issue