Workaround bug with native rendering and opacity in TextField text

Summary:
Problem is identified in https://bugreports.qt.io/browse/QTBUG-70138
with a potential patch for upstream.

With native rendering the alpha is pointlessly also set in the
glBlendFunc despite also being used in the uniform of the shader.
Resulting in a visual bug when used on a window with alpha (such as
Dialog)

It sucks, but we were starting to see people work round it by copying
more invasive workarounds everywhere else which I want to avoid.

BUG: 396813

Test Plan: Looked at a text field

Reviewers: #plasma, broulik

Reviewed By: #plasma, broulik

Subscribers: ngraham, kde-frameworks-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D15021
This commit is contained in:
David Edmundson 2018-08-28 10:26:58 +01:00
parent 40b6550e09
commit 2faa71a55a

View File

@ -43,8 +43,12 @@ QtQuickControlStyle.TextFieldStyle {
* Also if we are on mobile, make sure we use QtRendering
* Finally, use QtRendering if we're using a non-integer scale factor to work around
* https://bugreports.qt.io/browse/QTBUG-67007
*
* color with an alpha is also broken. https://bugreports.qt.io/browse/QTBUG-70138
*
* Given we have so many issues, just enable QtRendering for now
*/
renderType: !QtQuickControlsPrivate.Settings.isMobile && control.echoMode == TextInput.Normal && Screen.devicePixelRatio % 1 == 0 ? Text.NativeRendering : Text.QtRendering
renderType: Text.QtRendering
background: Item {
//QQC button heights are max(backgroundHeight, label + margins).