summaryrefslogtreecommitdiff
path: root/protocol
diff options
context:
space:
mode:
authorSimon Ser <contact@emersion.fr>2020-07-15 09:39:25 +0200
committerSimon Ser <contact@emersion.fr>2020-10-29 13:02:50 +0000
commitd42b39ccab5baff33eb6a0d38d6d46ef0c442e89 (patch)
treee8751dc03c7bb20ee82cf66dd1ec83c74fb4ee62 /protocol
parent1ea08d748cfa86d7395315ca3e52085b0e1c8155 (diff)
downloadwayland-d42b39ccab5baff33eb6a0d38d6d46ef0c442e89.tar.gz
protocol: make it clear wl_surface.enter/leave are not for frame throttling
Some clients rely on wl_surface.enter/leave to start/stop their rendering loop. There are cases where this doesn't work: - Some compositors don't send wl_surface.leave when a toplevel is hidden. For instance Sway doesn't send this event when a toplevel is on an inactive workspace (but doesn't send wl_surface.frame events). - Some compositors might still want applications to continue to render even if away from outputs. For instance a compositor that allows to screen record individual toplevels might not send a wl_surface.enter event for hidden toplevels. Signed-off-by: Simon Ser <contact@emersion.fr>
Diffstat (limited to 'protocol')
-rw-r--r--protocol/wayland.xml6
1 files changed, 6 insertions, 0 deletions
diff --git a/protocol/wayland.xml b/protocol/wayland.xml
index 3475a79..f896818 100644
--- a/protocol/wayland.xml
+++ b/protocol/wayland.xml
@@ -1609,6 +1609,12 @@
This is emitted whenever a surface's creation, movement, or resizing
results in it no longer having any part of it within the scanout region
of an output.
+
+ Clients should not use the number of outputs the surface is on for frame
+ throttling purposes. The surface might be hidden even if no leave event
+ has been sent, and the compositor might expect new surface content
+ updates even if no enter event has been sent. The frame event should be
+ used instead.
</description>
<arg name="output" type="object" interface="wl_output" summary="output left by the surface"/>
</event>