Bug 442659

Summary: GTK3 Window decoration assets generated by kde-gtk-config are now all blank with Breeze window decoration
Product: [Applications] systemsettings Reporter: Paul McAuley <kde>
Component: kcm_styleAssignee: Plasma Bugs List <plasma-bugs-null>
Status: RESOLVED FIXED    
Severity: normal CC: arkaitz.develop, jodr666, kde, kwin-bugs-null, mail, nate, qydwhotmail
Priority: VHI Keywords: regression
Version First Reported In: 5.22.90   
Target Milestone: ---   
Platform: Neon   
OS: Linux   
See Also: https://bugzilla.mozilla.org/show_bug.cgi?id=1732830
Latest Commit: Version Fixed In: 5.23
Sentry Crash Report:

Description Paul McAuley 2021-09-18 14:20:40 UTC
SUMMARY

I am using the 5.23 beta on KDE Neon Unstable in X11. I notice that now with the Breeze window decoration if I open Firefox, for example, there are now no minimize/maximize/close buttons displayed. Upon further investigation if I look in ~/.config/gtk-3.0/assets/ all the svg files generated automatically by the kde-gtk-config / kded5 kwin_bridge are now blank. This does not happen with other non-Breeze window decorations.


Operating System: KDE neon Unstable Edition
KDE Plasma Version: 5.23.80
KDE Frameworks Version: 5.86.0
Qt Version: 5.15.3
Kernel Version: 5.11.0-34-generic (64-bit)
Graphics Platform: X11
Processors: 8 × Intel® Core™ i7-7700HQ CPU @ 2.80GHz
Memory: 31.2 GiB of RAM
Graphics Processor: Mesa Intel® HD Graphics 630
Comment 1 Tony 2021-09-19 06:27:14 UTC
Can confirm this on opensuse tumbleweed.
It only happens on x11 session on wayland is Ok.
Comment 2 Paul McAuley 2021-09-19 12:08:26 UTC
(In reply to Tony from comment #1)
> Can confirm this on opensuse tumbleweed.
> It only happens on x11 session on wayland is Ok.

Wayland probably works because the GTK window decorations there are hard-coded to Breeze and do not get dynamically updated by kde-gtk-config.
Comment 3 Mikhail Zolotukhin 2021-09-22 14:43:08 UTC
Since the drawing is performed using private KDecoration API (bad idea, yeah), the internal breakage is probably responsible. I have a hypothesis, that it is because of this commit: https://invent.kde.org/plasma/kwin/-/commit/08d3ceb024ff00d48ef8ffd5587c61ce1c5e06eb and
Comment 4 David Edmundson 2021-09-22 16:16:35 UTC
Potentially https://invent.kde.org/plasma/kwin/-/merge_requests/1448 will fix it, though that doesn't match your hypothesis
Comment 5 Nate Graham 2021-09-24 20:49:18 UTC
Sadly, https://invent.kde.org/plasma/kwin/-/merge_requests/1448 did not fix it.
Comment 6 Nate Graham 2021-09-27 21:05:11 UTC
*** Bug 442939 has been marked as a duplicate of this bug. ***
Comment 7 Bug Janitor Service 2021-10-02 17:48:24 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/kde-gtk-config/-/merge_requests/37
Comment 8 Ash Blake 2021-10-04 16:35:03 UTC
Git commit c10dff60289e8aa7b1989c49280b55711daaf14e by Ash Blake.
Committed on 02/10/2021 at 17:09.
Pushed by ngraham into branch 'master'.

kwin_bridge: Load DecorationButton without the "button" keyword

Plugin keywords have been deprecated. Breeze and Oxygen no longer use
the "button" keyword when registering their button plugins, so loading
them now fails and blank assets get generated.

Attempt loading DecorationButton without using the keyword, and if this
fails, try the deprecated keyword like in the KWin commit 6f110bca.

M  +12   -2    kded/kwin_bridge/dummydecorationbridge.cpp

https://invent.kde.org/plasma/kde-gtk-config/commit/c10dff60289e8aa7b1989c49280b55711daaf14e
Comment 9 Nate Graham 2021-10-04 16:36:17 UTC
Git commit 1e8ca818ee2d1fe65072d8d6bacf82a38dc14dc4 by Nate Graham, on behalf of Ash Blake.
Committed on 04/10/2021 at 16:36.
Pushed by ngraham into branch 'Plasma/5.23'.

kwin_bridge: Load DecorationButton without the "button" keyword

Plugin keywords have been deprecated. Breeze and Oxygen no longer use
the "button" keyword when registering their button plugins, so loading
them now fails and blank assets get generated.

Attempt loading DecorationButton without using the keyword, and if this
fails, try the deprecated keyword like in the KWin commit 6f110bca.


(cherry picked from commit c10dff60289e8aa7b1989c49280b55711daaf14e)

M  +12   -2    kded/kwin_bridge/dummydecorationbridge.cpp

https://invent.kde.org/plasma/kde-gtk-config/commit/1e8ca818ee2d1fe65072d8d6bacf82a38dc14dc4