Merge pull request #32 from alex-courtis/24-xwayland-cursor

#24 ensure that xwayland cursor defaults to left_ptr
This commit is contained in:
Devin J. Pohly 2020-12-24 21:37:48 -05:00 committed by GitHub
commit cfe7815903
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 18 additions and 0 deletions

18
dwl.c
View File

@ -305,6 +305,10 @@ static struct wlr_xdg_decoration_manager_v1 *xdeco_mgr;
static struct wlr_cursor *cursor;
static struct wlr_xcursor_manager *cursor_mgr;
#ifdef XWAYLAND
static struct wlr_xcursor *xcursor;
static struct wlr_xcursor_manager *xcursor_mgr;
#endif
static struct wlr_seat *seat;
static struct wl_list keyboards;
@ -2049,6 +2053,20 @@ setup(void)
wl_signal_add(&xwayland->events.ready, &xwayland_ready);
wl_signal_add(&xwayland->events.new_surface, &new_xwayland_surface);
/*
* Create the XWayland cursor manager at scale 1, setting its default
* pointer to match the rest of dwl.
*/
xcursor_mgr = wlr_xcursor_manager_create(NULL, 24);
wlr_xcursor_manager_load(xcursor_mgr, 1);
xcursor = wlr_xcursor_manager_get_xcursor(xcursor_mgr, "left_ptr", 1);
if (xcursor) {
wlr_xwayland_set_cursor(xwayland,
xcursor->images[0]->buffer, xcursor->images[0]->width * 4,
xcursor->images[0]->width, xcursor->images[0]->height,
xcursor->images[0]->hotspot_x, xcursor->images[0]->hotspot_y);
}
setenv("DISPLAY", xwayland->display_name, true);
} else {
fprintf(stderr, "failed to setup XWayland X server, continuing without it\n");