output: Mutate frame_pending needs_frame when there is an explicit output commit

These states would be set if output_init is invoked with a enabled state.
This would make frame_pending == true which means wlroots will ignore
any further frame events and the compositor will appear dead.
master
Alexander Orzechowski 1 year ago
parent 5aea90264f
commit 6c54c34713

@ -319,11 +319,6 @@ static void output_apply_state(struct wlr_output *output,
output->cursor_swapchain = NULL; output->cursor_swapchain = NULL;
} }
if (output_pending_enabled(output, state)) {
output->frame_pending = true;
output->needs_frame = false;
}
if (state->committed & WLR_OUTPUT_STATE_LAYERS) { if (state->committed & WLR_OUTPUT_STATE_LAYERS) {
for (size_t i = 0; i < state->layers_len; i++) { for (size_t i = 0; i < state->layers_len; i++) {
struct wlr_output_layer_state *layer_state = &state->layers[i]; struct wlr_output_layer_state *layer_state = &state->layers[i];
@ -825,6 +820,12 @@ bool wlr_output_commit_state(struct wlr_output *output,
} }
output->commit_seq++; output->commit_seq++;
if (output_pending_enabled(output, state)) {
output->frame_pending = true;
output->needs_frame = false;
}
output_apply_state(output, &pending); output_apply_state(output, &pending);
struct wlr_output_event_commit event = { struct wlr_output_event_commit event = {

Loading…
Cancel
Save