[plastik] Disable problematic text hints

Summary:
Use of "style: Text.Raised" combined with UTF-8 emoji characters
currently crashes deep in font rendering code.

A report has been submitted upstream:
https://bugreports.qt.io/browse/QTBUG-82311

Given this crash is surprisingly common, this patch removes the text
shadow. I normally would be against removing features, but this was a
subtle effect anyway and frankly just made things look blurry. I doubt
it'll be missed.

BUG: 417699
BUG: 413179

Test Plan:
Made unit test for the crash in qmlscene
Fixed the issue there

Reviewers: #kwin, zzag

Reviewed By: #kwin, zzag

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D27488
This commit is contained in:
David Edmundson 2020-02-19 08:26:06 +00:00
parent fb2fa0ff5f
commit 39798bffb1
3 changed files with 0 additions and 18 deletions

View file

@ -18,9 +18,6 @@
<entry name="coloredBorder" type="Bool">
<default>true</default>
</entry>
<entry name="titleShadow" type="Bool">
<default>true</default>
</entry>
<entry name="animateButtons" type="Bool">
<default>true</default>
</entry>

View file

@ -60,16 +60,6 @@
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="kcfg_titleShadow">
<property name="whatsThis">
<string>Check this option if you want the titlebar text to have a 3D look with a shadow behind it.</string>
</property>
<property name="text">
<string>Use shadowed &amp;text</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="kcfg_animateButtons">
<property name="whatsThis">
@ -92,7 +82,6 @@
</customwidgets>
<tabstops>
<tabstop>kcfg_animateButtons</tabstop>
<tabstop>kcfg_titleShadow</tabstop>
</tabstops>
<resources/>
<connections/>

View file

@ -76,7 +76,6 @@ Decoration {
root.titleAlignment = Text.AlignLeft;
}
root.animateButtons = decoration.readConfig("animateButtons", true);
root.titleShadow = decoration.readConfig("titleShadow", true);
if (decoration.animationsSupported) {
root.animationDuration = 150;
root.animateButtons = false;
@ -96,7 +95,6 @@ Decoration {
// set by readConfig after Component completed, ensures that buttons do not flicker
property int animationDuration: 0
property bool animateButtons: true
property bool titleShadow: true
Behavior on titleBarColor {
ColorAnimation {
duration: root.animationDuration
@ -276,8 +274,6 @@ Decoration {
}
text: decoration.client.caption
font: options.titleFont
style: root.titleShadow ? Text.Raised : Text.Normal
styleColor: colorHelper.shade(color, ColorHelper.ShadowShade)
elide: Text.ElideMiddle
renderType: Text.NativeRendering
}