xdg-shell: xdg_toplevel.configure for state synchronization purposes
In some cases, the compositor may need to synchronize its state with the client state. For example, to keep server side decoration state in sync with the client content to provide good visuals.
xdg_toplevel.configure
is the most obvious tool for that purpose at the moment. The compositor sends a configure event, stashes its server-side state, and then applies it later when the client acks the configure event. The issue with this approach is that xdg-shell clients are not required to react to configure events with the current spec, they can postpone configure events until they decide that it's a moment to commit the surface. I would like to propose making xdg_surface.ack_configure
requirements stricter, so the clients should react to configure events as soon as they can.
Other alternative that I've considered was adding a new protocol, however xdg_toplevel.configure
/xdg_surface.ack_configure
already act as a synchronization mechanism and adding another synchronization mechanism on top of it would make the protocol more complex and awkward.