[PATCH wayland-protcols v3] unstable: add xdg-toplevel-decoration protocol

Eike Hein hein at kde.org
Sun Mar 18 16:35:17 UTC 2018


On 03/18/2018 03:55 PM, Markus Ongyerth wrote:
>> a) Change the definition of "decoration" to "window controls as deemed
>> appropriate by the compositor, for example ...". This leaves what's in a
>> server-side deco and what's in a client-side deco up to servers and
>> clients, respectively, and allows this protocol to serve more systems.
> While a bit of rewording here (probably to the ambigous state it's in 
> xdg-shell) wouldn't hurt, this particular sentence would make CSD very weird, 
> since the client doesn't know what the compositor deems appropriate.
> I think we should avoid the situation where clients try to guess their env, 
> not promote it even further.

I hear you, but I don't think it's a problem - hang on.

Let's try to cut through all the heated contention we've had going on:
One of the issues some people in the "SSD camp" have is that in their
minds, "CSD" means whatever GTK+ 3 is doing with header bars, since
that's the most prominent example around.

But in a wayland-devel context, to paraphrase someone from #wayland, CSD
actually just means "the client is expected to draw whatever decoration
it deems fit for its uses" (which could include "nothing at all").

So you have two different models of thought:

a) Systems where the compositor wants to put standardized decorations on
clients to enforce/enable particular behavior and/or workflow across all
of them.

b) Systems where the compositor takes the stance of "the client knows
best how it wants to decorate itself".

In my eyes this protocol is about negotiating between these two cases,
and that's where my proposed wording comes from. If the server
advertises this interface, a client can opt into "I agree I'm not going
to decorate myself and let you do it", or the client can be left to its
own devices.

I think in both case, the protocol shouldn't make any attempts at
specifying what either the server or the client should put into a
decoration, which is what the text does right now. I think it's both
unnecessary and constrains us in a way we don't actually want. This
should be removed from the protocol text.

Plus, there's a chance here to go 180 degrees from the current wording
and describe the non-server-decorated case as "client shall decorate
itself as it sees fit" explicitly, which is obvious to some of the
Wayland community but not all, and could help with finally putting all
this in-fighting behind us. Without introducing any new side-effects in
the process (I think that's a free bonus, mind you - the main motivation
is just engineering hygiene).


Cheers,
Eike


More information about the wayland-devel mailing list