(I wonder if Pekka or Daniel would like to be dropped off the CC list as it may be too desktop-ish for them?)

On 3/3/18 10:58 AM, Simon Ser wrote:
Hi,

Thanks for taking time reviewing the protocol and suggesting an alternative 
design.

On March 2, 2018 4:36 PM, Mike Blumenkrantz <michael.blumenkra...@gmail.com> 
wrote:
Hi,

I agree with your point regarding a SSD-capable compositor not always wanting 
them, and certainly I can see the usefulness for cases such as what you've 
cited. However, in the example you provided, it's easy enough for an 
application to determine what desktop it's running in and then determine 
whether to use SSD--if the compositor implements and advertises this protocol 
then it's ultimately a client decision whether to use it.

I don't think "detecting the desktop environment" is a good idea. Some other 
DEs (elementary, Unity) might also prefer GTK+ CSDs even if they're not GNOME, and - 
supposing there's a good way to know which DE is currently running ­- hardcoding the 
names of DEs is a slippery slope.

Just a side note here: it is a slope clients slipped on already if they want to integrate with some DE settings. But I agree that it should be as limited as possible (and hopefully in some helper library/toolkit).


My issue is in the inconsistency of the protocol that has been proposed here. 
This is a protocol for enabling SSD; there should be no need for anything 
related to CSD, and I don't think there is a need for clients to have any form 
of protocol request to toggle between CSD and SSD.

This is not a protocol to enable SSDs, this is a protocol to negotiate client- 
or server-side decorations. This is stated in the protocol description.

Based on your assertion that borderless mode would be achieved in this protocol 
in the CSD mode, I would raise the counterpoint that in this case the client 
should just destroy the zxdg\_toplevel\_decoration_v1 object which, according 
to the destroy request, would revert to the surface using CSD anyway, 
furthering my assessment that there is indeed no need for any mention of CSD in 
the protocol requests.

This is racy - there will be frames with both client-side and server-side 
decorations.

(Will answer and elaborate on v2.)

This change allows for everything except the destroy request to be removed from 
zxdg\_toplevel\_decoration_v1, greatly simplifying the protocol as well as 
implementations of it. The case of the compositor "ignoring" the request to 
create SSD also becomes moot as well, since all that would mean is the compositor has 
chosen to use a borderless state at this time (e.g., tiling layout) which is irrelevant 
to the client anyway.

I don't understand your last point. A tiling layout would be exposed as SSD to 
the client.

Or not, tiling is orthogonal to CSD/SSD. We will have a tiling state in xdg-shell at some point, hopefully, that will enable nicer visuals for CSD too.


This aside, there's some other items of note here, such as the lack of 
precision related to when the change in decoration management state takes 
effect: most likely it should be applied on the next surface commit? I think 
this should be specified in the zxdg\_toplevel\_decoration_v1 interface 
description. Also, I would think that destroying the 
zxdg\_toplevel\_decoration\_manager\_v1 object while any 
zxdg\_toplevel\_decoration_v1 objects exist should be a client error, but this 
is similarly not specified anywhere.

The protocol integrates with the xdg-shell configuration mechanism, and I've been using 
the same wording as xdg-shell. xdg-toplevel-decoration just adds one property to the set 
of double-buffered xdg-surface properties (just like xdg-toplevel adds properties to 
xdg-surface). There are a bunch of "See xdg_surface.configure" in the 
description and as an extension of xdg-shell the protocol assumes the reader knows how 
xdg-shell works.

And it integrates rather well, IMO.
I have a few more comments that I will post on v2.

Thanks,

> [snip]

--

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