cursor: Unset cursor if texture upload failed

We need to make sure cursor_output_cursor_update() will clear the old
texture references through all code paths.
This commit is contained in:
Alexander Orzechowski 2023-09-19 05:18:31 -04:00
parent 7ef2c0a506
commit c044aef5f0
1 changed files with 8 additions and 10 deletions

View File

@ -505,10 +505,7 @@ static void cursor_output_cursor_update(struct wlr_cursor_output_cursor *output_
int dst_width = 0, dst_height = 0; int dst_width = 0, dst_height = 0;
if (buffer != NULL) { if (buffer != NULL) {
texture = wlr_texture_from_buffer(renderer, buffer); texture = wlr_texture_from_buffer(renderer, buffer);
if (texture == NULL) { if (texture) {
return;
}
src_box = (struct wlr_fbox){ src_box = (struct wlr_fbox){
.width = texture->width, .width = texture->width,
.height = texture->height, .height = texture->height,
@ -517,6 +514,7 @@ static void cursor_output_cursor_update(struct wlr_cursor_output_cursor *output_
dst_width = texture->width / scale; dst_width = texture->width / scale;
dst_height = texture->height / scale; dst_height = texture->height / scale;
} }
}
output_cursor_set_texture(output_cursor->output_cursor, texture, true, output_cursor_set_texture(output_cursor->output_cursor, texture, true,
&src_box, dst_width, dst_height, WL_OUTPUT_TRANSFORM_NORMAL, &src_box, dst_width, dst_height, WL_OUTPUT_TRANSFORM_NORMAL,