backend/wayland: don't ack outdated configures

This commit fixes the following interaction:

1) The host compositor sends a configure sequence for an output.
2) Before handling it, the guest compositor disables and immediately
re-enables the output.
3) The guest compositor tries to ack the configure event from step 1
which isn't relevant anymore after unmapping and re-initialization.

Instead, ignore all configure events after unmapping until we're sure
the host compositor has processed the unmapping.

Also see
https://gitlab.freedesktop.org/wayland/wayland-protocols/-/issues/108.
This commit is contained in:
Kirill Primak 2024-02-11 10:50:14 +03:00
parent d80c46250d
commit 629a5171f2
2 changed files with 35 additions and 4 deletions

View file

@ -101,6 +101,10 @@ struct wlr_wl_output {
bool initialized;
// If not NULL, the host compositor hasn't acknowledged the unmapping yet;
// ignore all configure events
struct wl_callback *unmap_callback;
uint32_t enter_serial;
struct {