From e4f9dc7d581cf134e850bd02a9c4ae3e5989905a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Ekl=C3=B6f?= Date: Sat, 1 Jan 2022 13:56:15 +0100 Subject: [PATCH] render: add render_xcursor_is_valid() Returns true if the provided cursor name is non-NULL, and exist in the currently loaded xcursor theme. --- render.c | 8 ++++++++ render.h | 4 +++- 2 files changed, 11 insertions(+), 1 deletion(-) 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;