diff --git a/types/wlr_surface.c b/types/wlr_surface.c index 2058e21a..f8c1dbd5 100644 --- a/types/wlr_surface.c +++ b/types/wlr_surface.c @@ -284,8 +284,9 @@ static void surface_state_move(struct wlr_surface_state *state, surface_state_set_buffer(state, next->buffer_resource); surface_state_reset_buffer(next); + wlr_buffer_unlock(state->buffer); + state->buffer = NULL; if (next->buffer) { - wlr_buffer_unlock(state->buffer); state->buffer = wlr_buffer_lock(next->buffer); } wlr_buffer_unlock(next->buffer);