render: add render_xcursor_is_valid()

Returns true if the provided cursor name is non-NULL, and exist in the
currently loaded xcursor theme.
This commit is contained in:
Daniel Eklöf 2022-01-01 13:56:15 +01:00
parent 92ebe00927
commit e4f9dc7d58
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F
2 changed files with 11 additions and 1 deletions

View file

@ -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)
{

View file

@ -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;