On 15/07/2016 11:37, Jonas Ådahl wrote:
Some clients cannot obay arbitrary dimensions configured via
xdg_toplevel.configure. For example, a client surface could require to
have a certain aspect ratio, or not even be able to resize at all.

Prior to this patch, such clients could not be implemented correctly, as
the compositor is allowed to ignore the max/min size limits set by the
client, resulting in the client either having to abort itself or being
disconnected by the compositor when it disobayed the mandated
configuration.

With this change, compositors can up front make the decision to either
disconnect a client that will not be able to resize to a certain size,
or deal with it in some way, such as adding padding or scaling.

Signed-off-by: Jonas Ådahl <jad...@gmail.com>
---

As commented on IRC, NAK from me here.
I see the xdg_toplevel capabilities as a nicer answer to the issue.

My rationale:
The "fullscreen" and "maximized" state should be complete features, not something the client can half-implement. If a client claims to support them, it must obey the compositor as no other component will know better which size will fit, but only the client knows how to fill the space (e.g. padding with the background colour for a terminal, instead of dumb black, which would looks weird if the terminal uses white as background).

Cheers,


 unstable/xdg-shell/xdg-shell-unstable-v6.xml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/unstable/xdg-shell/xdg-shell-unstable-v6.xml 
b/unstable/xdg-shell/xdg-shell-unstable-v6.xml
index 8da9c57..862e664 100644
--- a/unstable/xdg-shell/xdg-shell-unstable-v6.xml
+++ b/unstable/xdg-shell/xdg-shell-unstable-v6.xml
@@ -690,13 +690,13 @@
       <entry name="maximized" value="1" summary="the surface is maximized">
        <description summary="the surface is maximized">
          The surface is maximized. The window geometry specified in the 
configure
-         event must be obeyed by the client.
+         event should be obeyed by the client.
        </description>
       </entry>
       <entry name="fullscreen" value="2" summary="the surface is fullscreen">
        <description summary="the surface is fullscreen">
          The surface is fullscreen. The window geometry specified in the 
configure
-         event must be obeyed by the client.
+         event should be obeyed by the client.
        </description>
       </entry>
       <entry name="resizing" value="3" summary="the surface is being resized">



--

Quentin “Sardem FF7” Glidic
_______________________________________________
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to