xdg-shell: about configure, states and ack_configure
Olivier Fourdan
ofourdan at redhat.com
Thu Apr 21 07:57:52 UTC 2016
Hi all,
Following the discussion around the min/max size addition to xdg-shell v6, I would like to get one point about configure events clarified, if possible.
First, a quick reminder of what the spec currently says:
1. configure:
The configure event asks the client to resize its surface or to
change its state.
The width and height arguments specify a hint to the window
about how its surface should be resized in window geometry
coordinates. See set_window_geometry.
2. state:
The surface is maximized. The window geometry specified in the
configure event must be obeyed by the client.
The surface is fullscreen. The window geometry specified in the
configure event must be obeyed by the client.
3. ack_configure:
When a configure event is received, if a client commits the
surface in response to the configure event, then the client
must make an ack_configure request sometime before the commit
request, passing along the serial of the configure event.
and also:
The compositor expects that the most recently received
ack_configure request at the time of a commit indicates which
configure event the client is responding to.
So, for example, if the compositor sets a state maximized and a size larger than the client would expect, in theory, the client could ignore the request, not configure its surface and never send an ack_configure for that serial.
At least, that was my understanding and that's why I reckoned the client would always have the final word even if the compositor would not follow the min/max size hints.
Thus my questions:
- Is my understanding of the spec accurate?
- Is the current wording of the spec clear enough?
- If not, should the spec explicitely state that the client may chose not to ack a configure event?
- And at last, is "not sending an ack" the same as "not acking", ie should we add the notion of "nack_configure"?
Cheers,
Olivier
More information about the wayland-devel
mailing list