QtWayland decoration improvement

Martin Bříza mbriza at redhat.com
Mon Feb 19 15:37:55 UTC 2018


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.

Cheers
Martin


More information about the Plasma-devel mailing list