Merge pull request #32 from alex-courtis/24-xwayland-cursor
#24 ensure that xwayland cursor defaults to left_ptr
This commit is contained in:
		
							
								
								
									
										18
									
								
								dwl.c
									
									
									
									
									
								
							
							
						
						
									
										18
									
								
								dwl.c
									
									
									
									
									
								
							| @@ -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"); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user