summaryrefslogtreecommitdiff
path: root/stable
diff options
context:
space:
mode:
authorJonas Ådahl <jadahl@gmail.com>2020-08-04 15:46:24 +0200
committerJonas Ådahl <jadahl@gmail.com>2022-01-19 09:54:22 +0100
commit344048614ad4a3887e431f63b6f12208edce51f9 (patch)
tree126891325b848496e1a6a9f3a9c47080af6958cb /stable
parentc2ceb5f14d0af04c248e03c125d2ed85980cf806 (diff)
downloadwayland-protocols-344048614ad4a3887e431f63b6f12208edce51f9.tar.gz
xdg-shell: Add toplevel "bounds" configure event
This aims to communicate the maximum size a surface should be created with, and loosely corresponds to the concept of "work area" in the X11 world. Closes: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/issues/17 Signed-off-by: Jonas Ådahl <jadahl@gmail.com> Reviewed-by: Simon Ser <contact@emersion.fr>
Diffstat (limited to 'stable')
-rw-r--r--stable/xdg-shell/xdg-shell.xml34
1 files changed, 29 insertions, 5 deletions
diff --git a/stable/xdg-shell/xdg-shell.xml b/stable/xdg-shell/xdg-shell.xml
index 7909359..9b5279e 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="3">
+ <interface name="xdg_wm_base" version="4">
<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
@@ -117,7 +117,7 @@
</event>
</interface>
- <interface name="xdg_positioner" version="3">
+ <interface name="xdg_positioner" version="4">
<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
@@ -401,7 +401,7 @@
</request>
</interface>
- <interface name="xdg_surface" version="3">
+ <interface name="xdg_surface" version="4">
<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.
@@ -577,7 +577,7 @@
</interface>
- <interface name="xdg_toplevel" version="3">
+ <interface name="xdg_toplevel" version="4">
<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,
@@ -1070,9 +1070,33 @@
a dialog to ask the user to save their data, etc.
</description>
</event>
+
+ <!-- Version 4 additions -->
+
+ <event name="configure_bounds" since="4">
+ <description summary="recommended window geometry bounds">
+ The configure_bounds event may be sent prior to a xdg_toplevel.configure
+ event to communicate the bounds a window geometry size is recommended
+ to constrain to.
+
+ The passed width and height are in surface coordinate space. If width
+ and height are 0, it means bounds is unknown and equivalent to as if no
+ configure_bounds event was ever sent for this surface.
+
+ The bounds can for example correspond to the size of a monitor excluding
+ any panels or other shell components, so that a surface isn't created in
+ a way that it cannot fit.
+
+ The bounds may change at any point, and in such a case, a new
+ xdg_toplevel.configure_bounds will be sent, followed by
+ xdg_toplevel.configure and xdg_surface.configure.
+ </description>
+ <arg name="width" type="int"/>
+ <arg name="height" type="int"/>
+ </event>
</interface>
- <interface name="xdg_popup" version="3">
+ <interface name="xdg_popup" version="4">
<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