diff --git a/clients/window.c b/clients/window.c index 57e27b84f..d75a0ac8c 100644 --- a/clients/window.c +++ b/clients/window.c @@ -671,6 +671,10 @@ create_pointer_surfaces(struct display *display) display_create_surface_from_file(display, pointer_images[i].filename, &rect); + if (!display->pointer_surfaces[i]) { + fprintf(stderr, "Error loading pointer image: %s\n", + pointer_images[i].filename); + } } } @@ -1172,6 +1176,10 @@ set_pointer_image(struct input *input, uint32_t time, int pointer) input->current_pointer_image = pointer; surface = display->pointer_surfaces[pointer]; + + if (!surface) + return; + buffer = display_get_buffer_for_surface(display, surface); wl_input_device_attach(input->input_device, time, buffer, pointer_images[pointer].hotspot_x, diff --git a/compositor/compositor.c b/compositor/compositor.c index 8fff0d1c6..772b0bbe6 100644 --- a/compositor/compositor.c +++ b/compositor/compositor.c @@ -559,6 +559,10 @@ create_pointer_images(struct wlsc_compositor *ec) create_sprite_from_png(ec, pointer_images[i].filename, SPRITE_USE_CURSOR); + if (!ec->pointer_sprites[i]) { + fprintf(stderr, "Error loading pointer image: %s\n", + pointer_images[i].filename); + } } } @@ -1190,6 +1194,9 @@ static void wlsc_input_device_attach_sprite(struct wlsc_input_device *device, struct wlsc_sprite *sprite, int x, int y) { + if (!sprite) + return; + wlsc_sprite_attach(sprite, &device->sprite->surface); wlsc_input_device_attach(device, x, y, sprite->width, sprite->height); }