[PATCH v5 xdg-shell-unstable-v6] xdg-shell: Add min/max size requests
Olivier Fourdan
ofourdan at redhat.com
Mon Apr 11 07:59:51 UTC 2016
Some application may wish to restrict their window in size, but
xdg-shell has no mechanism for the client to specify a maximum or
minimum size.
As a result, the compositor may try to maximize or fullscreen a window
while the client would not allow for the requested size.
Add new requests "set_max_size" and "set_min_size" to xdg-shell so that
the client can tell the compositor what would be its smallest/largest
acceptable size, and that the compositor can decide if maximize or
fullscreen is achievable, draw an accurate animation, etc.
Signed-off-by: Olivier Fourdan <ofourdan at redhat.com>
Bugzilla: https://bugzilla.gnome.org/show_bug.cgi?id=764413
---
v2: Rename the request to "set_preferred_max_size",
add "set_preferred_min_size" as well
v3: Rebase above patch 72427 in branch xdg-shell-unstable-v6
Rephrase description to clarify the unscaled size and using 0 to
reset back the preferred size to an unspecified state
v4: Patch the correct xml file (v6, not v5 <facepalm>)
Fix multiple mismatch of min/max in the description
Remove mention of "unscaled", specify window geometry coordinates
and refer to set_window_geometry.
v5: Fix typos and remove "preferred" from the name and description as
requested by several people on the ML and irc.
unstable/xdg-shell/xdg-shell-unstable-v6.xml | 60 ++++++++++++++++++++++++++++
1 file changed, 60 insertions(+)
diff --git a/unstable/xdg-shell/xdg-shell-unstable-v6.xml b/unstable/xdg-shell/xdg-shell-unstable-v6.xml
index 3fc7d42..8ab84f5 100644
--- a/unstable/xdg-shell/xdg-shell-unstable-v6.xml
+++ b/unstable/xdg-shell/xdg-shell-unstable-v6.xml
@@ -489,6 +489,66 @@
<arg name="states" type="array"/>
</event>
+ <request name="set_max_size">
+ <description summary="set the maximum size">
+ Set a maximum size for the window.
+
+ The client can specify a maximum size so that the compositor does
+ not try to configure the window beyond this size.
+
+ The width and height arguments are in window geometry coordinates.
+ See set_window_geometry.
+
+ The compositor can use this information to allow or disallow
+ different states like maximize or fullscreen and draw accurate
+ animations.
+
+ Similarly, a tiling window manager may use this information to
+ place and resize client windows in a more effective way.
+
+ If never set, the maximum size of the window is not limited by
+ the client.
+
+ A value of zero in the request for either width, height or both
+ means that the client has no expected maximum size in the given
+ dimension. As a result, a client wishing to reset the maximum size
+ to an unspecified state can use zero for width and height in the
+ request.
+ </description>
+ <arg name="width" type="int"/>
+ <arg name="height" type="int"/>
+ </request>
+
+ <request name="set_min_size">
+ <description summary="set the minimum size">
+ Set a minimum size for the window.
+
+ The client can specify a minimum size so that the compositor does
+ not try to configure the window below this size.
+
+ The width and height arguments are in window geometry coordinates.
+ See set_window_geometry.
+
+ The compositor can use this information to allow or disallow
+ different states like maximize or fullscreen and draw accurate
+ animations.
+
+ Similarly, a tiling window manager may use this information to
+ place and resize client windows in a more effective way.
+
+ If never set, the minimum size of the window is not limited by
+ the client.
+
+ A value of zero in the request for either width, height or both
+ means that the client has no expected minimum size in the given
+ dimension. As a result, a client wishing to reset the minimum size
+ to an unspecified state can use zero for width and height in the
+ request.
+ </description>
+ <arg name="width" type="int"/>
+ <arg name="height" type="int"/>
+ </request>
+
<request name="set_maximized">
<description summary="maximize the window">
Maximize the surface.
--
2.5.5
More information about the wayland-devel
mailing list