Hello everyone, 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 suggestion.