From 75f3bb1c254f3a3da5a0cd99af764787d928e6f9 Mon Sep 17 00:00:00 2001 From: rewine Date: Wed, 30 Sep 2026 15:55:10 +0800 Subject: [PATCH] docs: clarify dde-shell surface lifetime on early wl_surface destroy MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. Document that destroying wl_surface first does not destroy the treeland_dde_shell_surface_v2 object server-side. 2. Specify that the object becomes inert, with further requests silently ignored and no protocol error raised. 3. State that the object is destroyed only by the client's destroy() request or when the client disconnects. Log: Protocol lifetime semantics clarified for out-of-order destroy. Influence: 1. Run ./check-protocol-xml.sh dde/treeland-dde-shell-unstable-v2.xml and confirm wayland-scanner exits clean. 2. Review that the description no longer claims server-side auto-destroy on wl_surface destruction. 3. Verify the doc matches compositor behavior when a client destroys wl_surface before the shell surface. docs: 明确 dde-shell surface 在 wl_surface 提前销毁时的生命周期 1. 说明先销毁 wl_surface 不会导致服务端销毁 treeland_dde_shell_surface_v2 对象。 2. 明确对象转为 inert,后续请求被静默忽略且不触发协议错误。 3. 说明对象仅由客户端 destroy() 请求或客户端断开连接时销毁。 Log: 明确乱序销毁场景下的协议生命周期语义。 Influence: 1. 运行 ./check-protocol-xml.sh dde/treeland-dde-shell-unstable-v2.xml 并确认 wayland-scanner 退出码为 0。 2. 检查描述中不再声称服务端会在 wl_surface 销毁时自动销毁对象。 3. 核对文档与合成器在客户端先销毁 wl_surface 时的实际行为一致。 --- dde/treeland-dde-shell-unstable-v2.xml | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/dde/treeland-dde-shell-unstable-v2.xml b/dde/treeland-dde-shell-unstable-v2.xml index ec301e9..de1fb55 100644 --- a/dde/treeland-dde-shell-unstable-v2.xml +++ b/dde/treeland-dde-shell-unstable-v2.xml @@ -80,10 +80,13 @@ SPDX-License-Identifier: MIT buffer state; the client commits buffers with wl_surface semantics as usual. - On the server side the object is automatically destroyed when - the related wl_surface is destroyed. On the client side, - treeland_dde_shell_surface_v2.destroy() must be called before - destroying the wl_surface object. + On the client side, + treeland_dde_shell_surface_v2.destroy() should be called + before destroying the wl_surface object. + + If the client destroys the wl_surface first, the shell surface + object is kept until the client sends destroy() or disconnects; + requests sent to it in the meantime are ignored. Positioning requests are mutually exclusive: set_position_hint suggests fixed coordinates relative to an output, while