swaybar: handle wayland-cursor failures

Updating the cursor is not essential, so this change prints
a warning when wl_cursor_theme_load or wl_cursor_theme_get_cursor
fail instead of crashing or exiting.
This commit is contained in:
Manuel Stoeckl 2023-07-07 19:38:02 -04:00 committed by Simon Ser
parent 20ffe545ba
commit 92244c87db

View file

@ -81,8 +81,16 @@ void update_cursor(struct swaybar_seat *seat) {
int scale = pointer->current ? pointer->current->scale : 1; int scale = pointer->current ? pointer->current->scale : 1;
pointer->cursor_theme = wl_cursor_theme_load( pointer->cursor_theme = wl_cursor_theme_load(
cursor_theme, cursor_size * scale, seat->bar->shm); cursor_theme, cursor_size * scale, seat->bar->shm);
if (!pointer->cursor_theme) {
sway_log(SWAY_ERROR, "Failed to load cursor theme");
return;
}
struct wl_cursor *cursor; struct wl_cursor *cursor;
cursor = wl_cursor_theme_get_cursor(pointer->cursor_theme, "default"); cursor = wl_cursor_theme_get_cursor(pointer->cursor_theme, "default");
if (!cursor) {
sway_log(SWAY_ERROR, "Failed to get default cursor from theme");
return;
}
pointer->cursor_image = cursor->images[0]; pointer->cursor_image = cursor->images[0];
wl_surface_set_buffer_scale(pointer->cursor_surface, scale); wl_surface_set_buffer_scale(pointer->cursor_surface, scale);
wl_surface_attach(pointer->cursor_surface, wl_surface_attach(pointer->cursor_surface,