summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Stone <daniels@collabora.com>2023-03-29 14:56:24 +0100
committerDaniel Stone <daniels@collabora.com>2023-06-15 17:43:00 +0100
commitc124b641b3465ca838f50578f553a05291f32845 (patch)
tree84e1097e48e446d5d092f7b299b7439c6ab886c4
parentbbe9298e85220d8cd40ef802671ec575ba81367f (diff)
xdg-shell: Add suspended toplevel state
Add a toplevel state to indicate that surface repaints have been suspended. This may arise due to occlusion, output power state, etc. In this state, clients can choose to take meaningful action such as suspending any processing which would drive a repaint loop, or communicating to the active browser tab that the tab is not system-visible, or any other action that would be taken by a client not expecting to repaint until further notice. cf. discussion in wayland/wayland-protocols!99 Signed-off-by: Daniel Stone <daniels@collabora.com>
-rw-r--r--stable/xdg-shell/xdg-shell.xml17
1 files changed, 12 insertions, 5 deletions
diff --git a/stable/xdg-shell/xdg-shell.xml b/stable/xdg-shell/xdg-shell.xml
index 6ba8423..b83c129 100644
--- a/stable/xdg-shell/xdg-shell.xml
+++ b/stable/xdg-shell/xdg-shell.xml
@@ -29,7 +29,7 @@
DEALINGS IN THE SOFTWARE.
</copyright>
- <interface name="xdg_wm_base" version="5">
+ <interface name="xdg_wm_base" version="6">
<description summary="create desktop-style surfaces">
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 @@
</event>
</interface>
- <interface name="xdg_positioner" version="5">
+ <interface name="xdg_positioner" version="6">
<description summary="child surface positioner">
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 @@
</request>
</interface>
- <interface name="xdg_surface" version="5">
+ <interface name="xdg_surface" version="6">
<description summary="desktop user interface surface base interface">
An interface that may be implemented by a wl_surface, for
implementations that provide a desktop-style user interface.
@@ -615,7 +615,7 @@
</interface>
- <interface name="xdg_toplevel" version="5">
+ <interface name="xdg_toplevel" version="6">
<description summary="toplevel surface">
This interface defines an xdg_surface role which allows a surface to,
among other things, set window-like properties such as maximize,
@@ -887,6 +887,13 @@
considered to be adjacent to another part of the tiling grid.
</description>
</entry>
+ <entry name="suspended" value="9" since="6">
+ <description summary="surface repaint is suspended">
+ The surface is currently not ordinarily being repainted; for
+ example because its content is occluded by another window, or its
+ outputs are switched off due to screen locking.
+ </description>
+ </entry>
</enum>
<request name="set_max_size">
@@ -1185,7 +1192,7 @@
</event>
</interface>
- <interface name="xdg_popup" version="5">
+ <interface name="xdg_popup" version="6">
<description summary="short-lived, popup surfaces for menus">
A popup surface is a short-lived, temporary surface. It can be used to
implement for example menus, popovers, tooltips and other similar user