wlr_cursor: use default shape if requested shape missing

(cherry picked from commit b97106ddcb)
This commit is contained in:
M Stoeckl 2024-11-26 18:55:11 -05:00 committed by Simon Ser
parent 38f18cd684
commit f02d3ef28b

View file

@ -574,10 +574,16 @@ static void cursor_output_cursor_update(struct wlr_cursor_output_cursor *output_
wlr_xcursor_manager_load(manager, scale); wlr_xcursor_manager_load(manager, scale);
struct wlr_xcursor *xcursor = wlr_xcursor_manager_get_xcursor(manager, name, scale); struct wlr_xcursor *xcursor = wlr_xcursor_manager_get_xcursor(manager, name, scale);
if (xcursor == NULL) { if (xcursor == NULL) {
wlr_log(WLR_DEBUG, "XCursor theme is missing '%s' cursor", name); /* Try the default cursor: better the wrong image than an invisible
* (and therefore practically unusable) cursor */
wlr_log(WLR_DEBUG, "XCursor theme is missing '%s' cursor, falling back to 'default'", name);
xcursor = wlr_xcursor_manager_get_xcursor(manager, "default", scale);
if (xcursor == NULL) {
wlr_log(WLR_DEBUG, "XCursor theme is missing a 'default' cursor");
wlr_output_cursor_set_buffer(output_cursor->output_cursor, NULL, 0, 0); wlr_output_cursor_set_buffer(output_cursor->output_cursor, NULL, 0, 0);
return; return;
} }
}
output_cursor->xcursor = xcursor; output_cursor->xcursor = xcursor;
output_cursor_set_xcursor_image(output_cursor, 0); output_cursor_set_xcursor_image(output_cursor, 0);