Merge branch 'decorations-overlay' into 'main'

xdg-decoration: add an option in xdg_decoration for overlaying decorations

Closes #167

See merge request wayland/wayland-protocols!274
This commit is contained in:
Ryan Warfield 2025-12-16 08:02:14 +00:00
commit 605709ce6d

View file

@ -33,7 +33,8 @@
resize and change a window's state.
A client can use this protocol to request being decorated by a supporting
compositor.
compositor. It can choose to have decorations drawn around it or to have
them overlaid on top of it.
If compositor and client do not negotiate the use of a server-side
decoration using this protocol, clients continue to self-decorate as they
@ -71,7 +72,7 @@
</request>
</interface>
<interface name="zxdg_toplevel_decoration_v1" version="1">
<interface name="zxdg_toplevel_decoration_v1" version="2">
<description summary="decoration object for a toplevel surface">
The decoration object allows the compositor to toggle server-side window
decorations for a toplevel surface. The client can request to switch to
@ -105,7 +106,9 @@
<entry name="client_side" value="1"
summary="no server-side window decoration"/>
<entry name="server_side" value="2"
summary="server-side window decoration"/>
summary="server-side window decoration drawn around the given window."/>
<entry name="server_side_overlay" value="3" since="2"
summary="server-side-overlay window decorations drawn over the window."/>
</enum>
<request name="set_mode">
@ -156,5 +159,32 @@
</description>
<arg name="mode" type="uint" enum="mode" summary="the decoration mode"/>
</event>
<enum name="overlay_location" since="2">
<description summary="location of a window decoration overlay on a window">
These values describe locations for overlaid window decorations.
</description>
<entry name="left" value="1"
summary="window decoration placed on the upper right corner of the window"/>
<entry name="right" value="2"
summary="window decoration placed on the upper right corner of the window"/>
<entry name="center" value="3"
summary="window decoration placed on the center of the top edge of the screen"/>
</enum>
<event name="configure_overlay" since="2">
<description summary="notify a decoration overlay layout change">
The configure-overlay event configures the layout of the decoration overlay.
The configured layout should not be applied immediately. Clients must send an
ack_configure in response to this event. See xdg_surface.configure and
xdg_surface.ack_configure for details.
A configure-overlaay event can be sent at any time if the server_side_overlay
mode is on.
</description>
<arg name="location" type="uint" enum="overlay_location" summary="where the decoration overlay will be drawn"/>
<arg name="width" type="uint" summary="the width of the drawn decoration overlay"/>
<arg name="height" type="uint" summary="the height of the drawn decoration overlay"/>
</event>
</interface>
</protocol>