output-damage: use output commit event

Instead of relying on output.pending.committed, use
wlr_output_event_commit to find out whether a buffer was committed.
Eventually output.pending will be cleared before the commit event is
emitted.

References: https://github.com/swaywm/wlroots/issues/2098
This commit is contained in:
Simon Ser 2021-01-10 17:00:09 +01:00
parent d6890cb847
commit edf5082a4c
No known key found for this signature in database
GPG key ID: 0FDE7BE0E88F5E48

View file

@ -59,8 +59,9 @@ static void output_handle_frame(struct wl_listener *listener, void *data) {
static void output_handle_commit(struct wl_listener *listener, void *data) { static void output_handle_commit(struct wl_listener *listener, void *data) {
struct wlr_output_damage *output_damage = struct wlr_output_damage *output_damage =
wl_container_of(listener, output_damage, output_commit); wl_container_of(listener, output_damage, output_commit);
struct wlr_output_event_commit *event = data;
if (!(output_damage->output->pending.committed & WLR_OUTPUT_STATE_BUFFER)) { if (!(event->committed & WLR_OUTPUT_STATE_BUFFER)) {
return; return;
} }