diff options
author | David Faure <david.faure@kdab.com> | 2017-10-06 11:07:14 +0200 |
---|---|---|
committer | David Faure <david.faure@kdab.com> | 2017-10-12 13:26:05 +0000 |
commit | bc74273143dfb5de8e2255649c7fd037d3d4075a (patch) | |
tree | d2816c142d6e56f33188e3bd7d68922c4dc5a75c /src | |
parent | f6cca6ab8a6055a0bc3a32d4c7943679972fb9ea (diff) |
QPainter: fix invalid pen style when drawing misspelled words
This code asks the platform theme to resolve SpellCheckUnderline to an
actual pen style (wave, solid, dash, etc.) but if there's no theme,
or if the default implementation in QPlatformTheme is used, the value is
still SpellCheckUnderline, which then casted to a PenStyle below in
qpainter.cpp:
pen.setStyle((Qt::PenStyle)(underlineStyle));
The value 7 is an invalid PenStyle, which leads to random behavior
when drawing the underline. Make it WaveUnderline if the platform theme
had no opinion on how to draw it.
Change-Id: I4f02f9b58f10582cee5aefce7a4d5cd300133140
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
Diffstat (limited to 'src')
-rw-r--r-- | src/gui/painting/qpainter.cpp | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/gui/painting/qpainter.cpp b/src/gui/painting/qpainter.cpp index b186182c34..49d8fd2846 100644 --- a/src/gui/painting/qpainter.cpp +++ b/src/gui/painting/qpainter.cpp @@ -6259,6 +6259,8 @@ static void drawTextItemDecoration(QPainter *painter, const QPointF &pos, const QPlatformTheme *theme = QGuiApplicationPrivate::platformTheme(); if (theme) underlineStyle = QTextCharFormat::UnderlineStyle(theme->themeHint(QPlatformTheme::SpellCheckUnderlineStyle).toInt()); + if (underlineStyle == QTextCharFormat::SpellCheckUnderline) // still not resolved + underlineStyle = QTextCharFormat::WaveUnderline; } if (underlineStyle == QTextCharFormat::WaveUnderline) { |