Commit 4653c287 authored by Martin Flöser's avatar Martin Flöser
Browse files

Fix crash when exiting kscreen kcm in systemsettings

When using threaded rendering loop [1] systemsettings crashed when
clicking the back button. This crash is caused inside the shader effect
used by the OpacityMask.
QtQuick informed us also that something is wrong:
"QSGDefaultLayer::bind: ShaderEffectSource: 'recursive' must be set to true when rendering recursively."

The actual problem is that orientationPanelContainer and the OpacityMask
are children to the monitor item causing recursion. By making them
siblings to the orientationPanelContainer the problem is resolved. The
error message from QtQuick is no longer shown and systemsettings doesn't
crash any more.

BUG: 344651
FIXED-IN: 5.4.3
REVIEW: 125734

[1] QSG_RENDER_LOOP=threaded systemsettings5
parent 4c3173c0
......@@ -249,40 +249,39 @@ QMLOutput {
}
}
}
}
Item {
id: orientationPanelContainer;
Item {
id: orientationPanelContainer;
anchors.fill: monitor;
anchors.fill: monitor;
visible: false
visible: false
Rectangle {
id: orientationPanel;
Rectangle {
id: orientationPanel;
anchors {
left: parent.left;
right: parent.right;
bottom: parent.bottom;
}
anchors {
left: parent.left;
right: parent.right;
bottom: parent.bottom;
}
height: 10;
color: root.focus ? palette.highlight : palette.shadow;
smooth: true;
height: 10;
color: root.focus ? palette.highlight : palette.shadow;
smooth: true;
Behavior on color {
PropertyAnimation {
duration: 150;
}
Behavior on color {
PropertyAnimation {
duration: 150;
}
}
}
}
OpacityMask {
anchors.fill: orientationPanelContainer;
source: orientationPanelContainer;
maskSource: monitor;
}
OpacityMask {
anchors.fill: orientationPanelContainer;
source: orientationPanelContainer;
maskSource: monitor;
}
}
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment