~ruther/dwl

cfe78159033968d80a83b7f879f8281267cc2751 — Devin J. Pohly 4 years ago 7803022 + 2616812
Merge pull request #32 from alex-courtis/24-xwayland-cursor

#24 ensure that xwayland cursor defaults to left_ptr
1 files changed, 18 insertions(+), 0 deletions(-)

M dwl.c
M dwl.c => dwl.c +18 -0
@@ 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");

Do not follow this link