I thought this would be a good place to discuss this small problem:
I'm trying to make Qt work better under Wayland and especially in GNOME.
The current infrastructure in QtWayland doesn't allow for very complicated
window decorations. First, QWaylandAbstractDecoration is a private API
now, which is mostly fine, however I'd like to make it a bit better.
Especially, there's a problem with the limited possibilities we now have.
The decorations cannot have shadows and the ability to handle mouse events
is pretty limited.
I'd like to solve this systematically, for everyone, likely by patching
QtWayland to add new features to QWaylandAbstractDecoration and I'd like
to ask for your advice.
I know there is the KDecoration2 API which is feature-complete (and in my
opinion, it exposes a lot more stuff than what we would eventually
actually need in Qt). Could (partially or completely) upstreaming this
class help with this problem? There could be a base class in QtWayland
implementing the core functionality and KDecoration2 could just extend the
class with what's required for KWin. KWin decorations could then be used
in other environments with a different compositor and a different QPA
plugin. I'm CCing Martin as I'm pretty sure he'll have something to say,
especially considering the stance on SSDs vs CSDs.
The other, less complicated (and less integrated) way would be to just add
a few more properties to QWaylandAbstractDecoration, patch QtWaylandClient
to handle shadows and improve damage/repaint support and patch Bradient to
support all this new stuff.
And even less complicated way would be to just do my own thing in
QGnomePlatform and support only the decorations I wrote myself.
Which one is the best one, according to you, please? I'm open to every