From b8596efc75369896bec6c30222d9b355ca82f482 Mon Sep 17 00:00:00 2001 From: Julian Orth Date: Wed, 8 Jan 2025 13:42:48 +0100 Subject: [PATCH] xdg-shell: make ack_configure double-buffered state Signed-off-by: Julian Orth --- stable/xdg-shell/xdg-shell.xml | 29 ++++++++++++++++++++++++----- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/stable/xdg-shell/xdg-shell.xml b/stable/xdg-shell/xdg-shell.xml index 1caf6f1..8b11a4d 100644 --- a/stable/xdg-shell/xdg-shell.xml +++ b/stable/xdg-shell/xdg-shell.xml @@ -29,7 +29,7 @@ DEALINGS IN THE SOFTWARE. - + The xdg_wm_base interface is exposed as a global object enabling clients to turn their wl_surfaces into windows in a desktop environment. It @@ -122,7 +122,7 @@ - + The xdg_positioner provides a collection of rules for the placement of a child surface relative to a parent surface. Rules can be defined to ensure @@ -407,7 +407,7 @@ - + An interface that may be implemented by a wl_surface, for implementations that provide a desktop-style user interface. @@ -566,6 +566,8 @@ information to move a surface to the top left only when the client has drawn itself for the maximized or fullscreen state. + The following applies to protocol version 6 or earlier. + If the client receives multiple configure events before it can respond to one, it only has to ack the last configure event. Acking a configure event that was never sent raises an invalid_serial @@ -589,6 +591,23 @@ 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. + + The following applies to protocol versions 7 or later. + + Since version 7, ack_configure is double-buffered state. See + wl_surface.commit for details. + + The client may send ack_configure multiple times to change the acked + configuration sequence before committing. Committing a configuration + sequence consumes that sequence and all earlier sequences. + + A commit must not contain a configuration sequences that has already + been consumed. Doing so will raise an invalid_serial error. + + Committing a configuration sequence indicates that the state in the + commit is suitable for the state requested by that configuration + sequence. If a commit does not contain a configuration sequence, the + committed sequence is unchanged. @@ -617,7 +636,7 @@ - + This interface defines an xdg_surface role which allows a surface to, among other things, set window-like properties such as maximize, @@ -1207,7 +1226,7 @@ - + A popup surface is a short-lived, temporary surface. It can be used to implement for example menus, popovers, tooltips and other similar user