summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Stone <daniels@collabora.com>2020-06-24 09:12:43 +0100
committerJonas Ã…dahl <jadahl@gmail.com>2022-10-10 07:58:54 +0000
commit115ba71872914f7b7dc3e5e57d4eff0ca892608b (patch)
treeae9204f6d0d038ae1770f8675360ab45b3ab5ebd
parent03ae934d6583e982ebc397fa296d53034c7a2370 (diff)
downloadwayland-protocols-115ba71872914f7b7dc3e5e57d4eff0ca892608b.tar.gz
xdg-shell: ack_configure must be strictly monotonic
Clients must send ack_configure in a strictly monotonic order wrt received configure events. It is an error to send an ack_configure request for a configure event which was sent prior to the last ack_configure for that surface, or to send multiple ack_configures for the same configure event. Weston and wlroots already use this interpretation, however Mutter and KWayland are more lax and allow duplicates. This clarification tightens the spec working to explicitly encode the Weston/wlroots behaviour. Signed-off-by: Daniel Stone <daniels@collabora.com> Closes: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/issues/21
-rw-r--r--stable/xdg-shell/xdg-shell.xml12
1 files changed, 12 insertions, 0 deletions
diff --git a/stable/xdg-shell/xdg-shell.xml b/stable/xdg-shell/xdg-shell.xml
index 993c54a..d2f5d5f 100644
--- a/stable/xdg-shell/xdg-shell.xml
+++ b/stable/xdg-shell/xdg-shell.xml
@@ -454,6 +454,7 @@
<entry name="not_constructed" value="1"/>
<entry name="already_constructed" value="2"/>
<entry name="unconfigured_buffer" value="3"/>
+ <entry name="invalid_serial" value="4"/>
</enum>
<request name="destroy" type="destructor">
@@ -549,6 +550,17 @@
A client may send multiple ack_configure requests before committing, but
only the last request sent before a commit indicates which configure
event the client really is responding to.
+
+ Sending an ack_configure request consumes the serial number sent with
+ the request, as well as serial numbers sent by all configure events
+ sent on this xdg_surface prior to the configure event referenced by
+ the committed serial.
+
+ It is an error to issue multiple ack_configure requests referencing a
+ serial from the same configure event, or to issue an ack_configure
+ request referencing a serial from a configure event issued before the
+ event identified by the last ack_configure request for the same
+ xdg_surface. Doing so will raise an invalid_serial error.
</description>
<arg name="serial" type="uint" summary="the serial from the configure event"/>
</request>