From a89b7df588153991f6cb51638535d05ed7154437 Mon Sep 17 00:00:00 2001 From: Julian Orth Date: Sat, 28 Feb 2026 15:19:43 +0100 Subject: [PATCH] protocol: clarify wl_surface.destroy with pending release callbacks Since the client cannot destroy wl_callback objects itself, the compositor must send wl_callback.done. Signed-off-by: Julian Orth --- protocol/wayland.xml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/protocol/wayland.xml b/protocol/wayland.xml index 6d3a056f..d0d32724 100644 --- a/protocol/wayland.xml +++ b/protocol/wayland.xml @@ -1971,9 +1971,12 @@ The callback_data passed in the wl_callback.done event is unused and is always zero. - Sending this request without attaching a non-null buffer in the same - content update is a protocol error. The compositor will send the - no_buffer error in this case. + If the wl_surface is destroyed while it contains uncommitted release + callbacks, the wl_callback.done event is sent immediately. + + If a content update is committed and contains release callbacks, it must + also contain a non-null buffer. Otherwise, the compositor sends the + no_buffer error.