Thoughts about decoration information in the xdg_shell
Martin Gräßlin
mgraesslin at kde.org
Fri Nov 15 03:17:58 PST 2013
Hi all,
this is a reply to the topic of whether to have information about decorations
in the xdg_shell at all (see [1]). Sorry that I don't reply to the right
message, had not been subscribed to the list.
I want to outline why we in the KDE Plasma team would prefer to have the
possibility to tell clients whether to draw decorations or not. In Plasma we
have multiple shells and will be able to switch at runtime. From the window
manager perspective the main difference is currently the handling of window
decorations. Our touch oriented shell doesn't have decorated windows, our
netbook shell only has decorated windows for dialogs and our desktop shell has
a typical window decorated style, but not enforcing SSD (there are valid use
cases like yakuake).
This gives us quite some flexibility to adjust at runtime (add keyboard to
tablet to get a desktop). An application doesn't need to know what the shell
currently looks like. The shell takes care of handling all of that.
If we don't have information about whether the window should be decorated or
not in the xdg_shell we would need to adjust all applications to know about
our various shells. Otherwise a consistent user experience would not be
possible. Also it removes all possibilities to take this further in the
future.
Now I don't want to force SSD to anybody nor do I want to be forced to CSD.
Therefore I want to have a very simple spec, which allows the compositor to
tell the clients whether they are expected to render decos themselves (enforce
CSD, e.g. GNOME Shell), whether the compositor doesn't care, but prefer them
to not render themselves (e.g. Plasma Desktop case) or whether the compositor
wants the client to not render any handles at all (enforce SSD, Plasma Active
case).
In addition the client should tell the compositor whether it draws handles or
not. So that the SSD-supporting compositor doesn't add a decoration around a
CSD client.
I think this would be a good solution. It would require clients to support
CSD, but also to not render them in shells, which prefer to not have them.
Also it doesn't force CSD applications to support it. They could just announce
that they do CSD no matter what.
Opinions? Would that be acceptable for everybody?
Cheers
Martin Gräßlin
[1] http://lists.freedesktop.org/archives/wayland-devel/2013-November/011980.html
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.freedesktop.org/archives/wayland-devel/attachments/20131115/17a8153a/attachment.pgp>
More information about the wayland-devel
mailing list