Given that internal clients in KWin are not backed by x11 windows or wayland surfaces, we need some API in KWindowSystem to set shadows so KWin can intercept relevant API method calls and react accordingly.
Description
Details
- Differential Revisions
- D26621: [kstyle] Drop Qt 4 style plugin
D26609: [kstyle] Port to KWindowSystem shadows API
D26504: [Panel Shadows] Port to KWindowSystem shadows API
D26503: [Dialog Shadows] Port to KWindowSystem shadows API
D26491: [Plasma Quick] Add WaylandIntegration class
D26476: [kstyle] Drop Qt 4 style plugin
D26475: [kstyle] Port to KWindowSystem shadows API
D26457: Introduce shadows API
D26459: Provide a KWindowShadow implementation for internal clients
D26458: [windowsystem] Provide a KWindowShadow implementation
Related Objects
- Mentioned In
- R120:13a4e62336b3: [Panel Shadows] Port to KWindowSystem shadows API
R242:f5f43514af0d: [Plasma Quick] Add WaylandIntegration class
R113:164dbdb334b8: [kstyle] Port to KWindowSystem shadows API
R113:94c856314c16: [kstyle] Drop Qt 4 style plugin
R31:7f3ae29b1964: [kstyle] Port to KWindowSystem shadows API
R31:2df91ac9a328: [kstyle] Drop Qt 4 style plugin
R108:fb598c65b8eb: Provide a KWindowShadow implementation for internal clients
R130:8b0244949229: [windowsystem] Provide a KWindowShadow implementation
R278:493452e98f99: Introduce shadows API
There's one massive problem we're going to face.
kwayland-integration is released with plasma
we have people using new frameworks with old plasma
porting breeze is fine, as that's in sync with kwayland integration, but I don't know of any nice way to do plasma dialogs in a way that won't introduce a regression
I don't know of any nice way to do plasma dialogs in a way that won't introduce a regression
I don't think there is a nice way to work around it. I'm afraid those people will have to stick with shadow-less plasma dialogs on wayland for quite some time. :(
While I was porting Oxygen to KWindowShadow yesterday, I encountered a problem or rather noticed it in the existing port of Breeze to KWindowShadow.
Currently, neither Oxygen nor Breeze try to destroy shadows when a widget becomes hidden or the platform window is destroyed. This will be not okay with KWindowShadow though. If you do new, then there has to be a delete somewhere... Not quite sure what to do about it. The current API is very sensible imho, but this intentional "resource leak" that Oxygen and Breeze do is just weird...
Hmm, so the best way to handle this is to land the plasma-framework patch when KF 5.70 is around the corner.
KDE Plasma 5.19 depends on KF 5.70.