Bug 341971 - Windows decoration KCM is all black. QQuickWidget + external winId() call related issue.
Summary: Windows decoration KCM is all black. QQuickWidget + external winId() call rel...
Status: RESOLVED FIXED
Alias: None
Product: kwin
Classification: Plasma
Component: decorations (show other bugs)
Version: 5.2.0
Platform: Other Linux
: VHI critical
Target Milestone: ---
Assignee: KWin default assignee
URL: https://git.reviewboard.kde.org/r/122...
Keywords:
: 343299 343388 343400 (view as bug list)
Depends on:
Blocks:
 
Reported: 2014-12-17 14:48 UTC by Jan Grulich
Modified: 2015-01-28 09:06 UTC (History)
4 users (show)

See Also:
Latest Commit:
Version Fixed In:
thomas.luebking: ReviewRequest+


Attachments
Screenshot of the KCM. (62.32 KB, image/png)
2014-12-17 14:49 UTC, Jan Grulich
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Jan Grulich 2014-12-17 14:48:32 UTC
I'm having problems with KCM for windows decoration. Sometimes when I open it I see just a black window, without any options or decorations. If it loads something, it looks really weird. It is mixing a list of available decorations with some configuration which is barely visible when using breeze dark plasma theme. I'm not sure how it's suppose to look, but it seems to be confusing, there is even no separator between the list of available decorations and the configuration.

Reproducible: Always




I see some QML errors when I lunch it from konsole:
file:///opt/kde-devel/share/kwin/decorations/kwin4_decoration_qml_breeze/contents/ui/BreezeHelpButton.qml:121: Error: Cannot assign [undefined] to bool
file:///opt/kde-devel/share/kwin/decorations/kwin4_decoration_qml_breeze/contents/ui/BreezeCloseButton.qml:75:5: QML Connections: Cannot assign to non-existent property "onAppMenuChanged"
file:///opt/kde-devel/share/kwin/decorations/kwin4_decoration_qml_breeze/contents/ui/BreezeStickyButton.qml:91:5: QML Connections: Cannot assign to non-existent property "onAppMenuChanged"
file:///opt/kde-devel/share/kwin/decorations/kwin4_decoration_qml_breeze/contents/ui/BreezeStickyButton.qml:71:22: Unable to assign [undefined] to bool
file:///opt/kde-devel/share/kwin/decorations/kwin4_decoration_qml_breeze/contents/ui/BreezeMaximizeButton.qml:99:22: Unable to assign [undefined] to bool
file:///opt/kde-devel/share/kwin/decorations/kwin4_decoration_qml_breeze/contents/ui/main.qml:339:31: Unable to assign [undefined] to QString
file:///opt/kde-devel/share/kwin/decorations/kwin4_decoration_qml_breeze/contents/ui/main.qml:142:14: Unable to assign int to QObject*
Comment 1 Jan Grulich 2014-12-17 14:49:31 UTC
Created attachment 90012 [details]
Screenshot of the KCM.
Comment 2 Martin Flöser 2014-12-18 08:42:05 UTC
The warnings are unrelated: they are all for the qml breeze decoration which got git rm-ed.

The problem is probably that it's a QQuickWidget. If once we switched to Qt 5.4 it's still happening we need to switch back to the ugly way.
Comment 3 Martin Flöser 2015-01-13 10:48:26 UTC
the problem of the colors with breeze dark is bug #337544. Which is addressed by https://git.reviewboard.kde.org/r/122027/.

The main problem of black window should(TM) be fixed by Qt 5.4.
Comment 4 Antonio Rojas 2015-01-13 22:57:13 UTC
The black window still happens here with Qt 5.4
Comment 5 Martin Flöser 2015-01-26 06:41:52 UTC
*** Bug 343299 has been marked as a duplicate of this bug. ***
Comment 6 Thomas Lübking 2015-01-27 21:25:24 UTC
*** Bug 343388 has been marked as a duplicate of this bug. ***
Comment 7 Thomas Lübking 2015-01-27 21:26:32 UTC
Adding RR URL to workaround https://bugreports.qt.io/browse/QTBUG-40765
Comment 8 Thomas Lübking 2015-01-27 21:44:27 UTC
*** Bug 343400 has been marked as a duplicate of this bug. ***
Comment 9 Marco Martin 2015-01-28 09:06:52 UTC
Git commit 63885cc5b3f2922441dac0af96ed001b737e78ea by Marco Martin.
Committed on 28/01/2015 at 08:58.
Pushed by mart into branch 'Plasma/5.2'.

use xembed for the qml view of window decorations modul

the only way to ensure the view won't randomly become black
(probably QQuickwidget won't be fixed in qt anytime soon or
ever in 5.x lifetime due to how architecturally is)

basically systemsettings has no control of what gets loaded in,
if one other kcm will call winId(), this one will break.

M  +22   -18   kcmkwin/kwindecoration/kcm.cpp
M  +2    -0    kcmkwin/kwindecoration/kcm.h
M  +1    -4    kcmkwin/kwindecoration/kcm.ui
M  +11   -7    kcmkwin/kwindecoration/qml/main.qml

http://commits.kde.org/kwin/63885cc5b3f2922441dac0af96ed001b737e78ea