diff options
| author | Alexander Courtis <alex@courtis.org> | 2020-08-04 11:53:23 +1000 | 
|---|---|---|
| committer | Alexander Courtis <alex@courtis.org> | 2020-08-04 11:53:23 +1000 | 
| commit | f593820edee096dc62e296af9d7514cdf4268ce4 (patch) | |
| tree | ef1e308e087cca4c1630c1930ded3cc1cd423d29 | |
| parent | 541ecea796d2ac99e08a7e1185585cf0d1531799 (diff) | |
#24 ensure that xwayland cursor defaults to left_ptr
| -rw-r--r-- | dwl.c | 16 | 
1 files changed, 16 insertions, 0 deletions
| @@ -243,7 +243,9 @@ static struct wl_list independents;  static struct wlr_xdg_decoration_manager_v1 *xdeco_mgr;  static struct wlr_cursor *cursor; +static struct wlr_xcursor *xcursor;  static struct wlr_xcursor_manager *cursor_mgr; +static struct wlr_xcursor_manager *xcursor_mgr;  static struct wlr_seat *seat;  static struct wl_list keyboards; @@ -1588,6 +1590,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"); | 
