wlr_compositer: Keep track if surface has committed a buffer before.

This would break if you are running with a NULL renderer.
master
Alexander Orzechowski 2 years ago committed by Simon Ser
parent 2dd9549085
commit 394accbe4a

@ -163,6 +163,7 @@ struct wlr_surface {
} previous; } previous;
bool opaque; bool opaque;
bool has_buffer;
int32_t preferred_buffer_scale; int32_t preferred_buffer_scale;
bool preferred_buffer_transform_sent; bool preferred_buffer_transform_sent;

@ -348,6 +348,8 @@ static void surface_state_move(struct wlr_surface_state *state,
} }
static void surface_apply_damage(struct wlr_surface *surface) { static void surface_apply_damage(struct wlr_surface *surface) {
surface->has_buffer = surface->current.buffer;
if (surface->current.buffer == NULL) { if (surface->current.buffer == NULL) {
// NULL commit // NULL commit
if (surface->buffer != NULL) { if (surface->buffer != NULL) {
@ -723,7 +725,7 @@ struct wlr_texture *wlr_surface_get_texture(struct wlr_surface *surface) {
} }
bool wlr_surface_has_buffer(struct wlr_surface *surface) { bool wlr_surface_has_buffer(struct wlr_surface *surface) {
return wlr_surface_get_texture(surface) != NULL; return surface->has_buffer;
} }
bool wlr_surface_set_role(struct wlr_surface *surface, bool wlr_surface_set_role(struct wlr_surface *surface,

Loading…
Cancel
Save