From dcba1a10d3baf035a6cc468e6d3ca7c5fcc5d8a8 Mon Sep 17 00:00:00 2001 From: Derek Foreman Date: Tue, 1 Sep 2015 10:32:39 -0500 Subject: [PATCH] xdg-shell: Clarify ack_configure behaviour Right now many toolkits (toytoolkit, gtk+ and EFL) will send an ack_configure request immediately in response to a configure event, even if they're not immediately committing the surface at that time. This leads to a situation where multiple configures receive ack_configure before any commit happens. There's really no reason for that sequence of events to bother a compositor, so this just clarifies the language to make it ok. Signed-off-by: Derek Foreman Reviewed-by: Jasper St. Pierre --- protocol/xdg-shell.xml | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/protocol/xdg-shell.xml b/protocol/xdg-shell.xml index f98e760d..1d37e361 100644 --- a/protocol/xdg-shell.xml +++ b/protocol/xdg-shell.xml @@ -398,8 +398,8 @@ When a configure event is received, if a client commits the surface in response to the configure event, then the client - must make a ack_configure request before the commit request, - passing along the serial of the configure event. + must make an ack_configure request sometime before the commit + request, passing along the serial of the configure event. For instance, the compositor might use this information to move a surface to the top left only when the client has drawn itself @@ -407,6 +407,14 @@ If the client receives multiple configure events before it can respond to one, it only has to ack the last configure event. + + A client is not required to commit immediately after sending + an ack_configure request - it may even ack_configure several times + before its next surface commit. + + 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.