diff --git a/render.c b/render.c index 7e8183df..65c39bf8 100644 --- a/render.c +++ b/render.c @@ -3801,6 +3801,14 @@ static const struct wl_callback_listener xcursor_listener = { .done = &xcursor_callback, }; +bool +render_xcursor_is_valid(const struct seat *seat, const char *cursor) +{ + if (cursor == NULL) + return false; + return wl_cursor_theme_get_cursor(seat->pointer.theme, cursor) != NULL; +} + static void render_xcursor_update(struct seat *seat) { diff --git a/render.h b/render.h index 644b4d00..d2c673ee 100644 --- a/render.h +++ b/render.h @@ -18,7 +18,9 @@ void render_refresh_csd(struct terminal *term); void render_refresh_search(struct terminal *term); void render_refresh_title(struct terminal *term); void render_refresh_urls(struct terminal *term); -bool render_xcursor_set(struct seat *seat, struct terminal *term, const char *xcursor); +bool render_xcursor_set( + struct seat *seat, struct terminal *term, const char *xcursor); +bool render_xcursor_is_valid(const struct seat *seat, const char *cursor); struct render_worker_context { int my_id;