|
|
@ -399,6 +399,10 @@ static void surface_commit_state(struct wlr_surface *surface,
|
|
|
|
struct wlr_surface_state *next) {
|
|
|
|
struct wlr_surface_state *next) {
|
|
|
|
assert(next->cached_state_locks == 0);
|
|
|
|
assert(next->cached_state_locks == 0);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (surface->role && surface->role->precommit) {
|
|
|
|
|
|
|
|
surface->role->precommit(surface, next);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
bool invalid_buffer = next->committed & WLR_SURFACE_STATE_BUFFER;
|
|
|
|
bool invalid_buffer = next->committed & WLR_SURFACE_STATE_BUFFER;
|
|
|
|
|
|
|
|
|
|
|
|
surface->sx += next->dx;
|
|
|
|
surface->sx += next->dx;
|
|
|
@ -509,10 +513,6 @@ static void surface_handle_commit(struct wl_client *client,
|
|
|
|
|
|
|
|
|
|
|
|
wlr_signal_emit_safe(&surface->events.client_commit, NULL);
|
|
|
|
wlr_signal_emit_safe(&surface->events.client_commit, NULL);
|
|
|
|
|
|
|
|
|
|
|
|
if (surface->role && surface->role->precommit) {
|
|
|
|
|
|
|
|
surface->role->precommit(surface);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (surface->pending.cached_state_locks > 0 || !wl_list_empty(&surface->cached)) {
|
|
|
|
if (surface->pending.cached_state_locks > 0 || !wl_list_empty(&surface->cached)) {
|
|
|
|
surface_cache_pending(surface);
|
|
|
|
surface_cache_pending(surface);
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|