diff options
author | Jiang Jiang <jiang.jiang@nokia.com> | 2011-09-08 14:31:53 (GMT) |
---|---|---|
committer | Jiang Jiang <jiang.jiang@nokia.com> | 2011-09-08 14:31:53 (GMT) |
commit | 80294c375eca9687d1c34e9ab048294373e7f00c (patch) | |
tree | 561fc683ec90c7e4a3747c56fc9337b2a3a5fe08 /src/gui/text/qtextengine_p.h | |
parent | 6326227674efa85c1a5320141041110d211efc75 (diff) | |
download | Qt-80294c375eca9687d1c34e9ab048294373e7f00c.zip Qt-80294c375eca9687d1c34e9ab048294373e7f00c.tar.gz Qt-80294c375eca9687d1c34e9ab048294373e7f00c.tar.bz2 |
Fix trailing spaces problem by not adding it to QScriptLine.length
It seems to be the only sane way to fix it. Previous attempts to
fix it by compensating the trailing space width all failed in some
cases, one of the trickiest is when we are having embedded LTR text
that has trailing spaces in a RTL paragraph.
In this patch we leave line.length not including the trailing space
length, but saving it to a separated variable, so that we can always
add it back when needed (QTextLine::textLength() for instance).
It fixed all the problems in different alignments of both RTL and
LTR text. And no regression is found yet.
Reviewed-by: Eskil
Diffstat (limited to 'src/gui/text/qtextengine_p.h')
-rw-r--r-- | src/gui/text/qtextengine_p.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/gui/text/qtextengine_p.h b/src/gui/text/qtextengine_p.h index b1bd0c3..0a86886 100644 --- a/src/gui/text/qtextengine_p.h +++ b/src/gui/text/qtextengine_p.h @@ -376,7 +376,7 @@ struct Q_AUTOTEST_EXPORT QScriptLine { // created and filled in QTextLine::layout_helper QScriptLine() - : from(0), length(0), + : from(0), trailingSpaces(0), length(0), justified(0), gridfitted(0), hasTrailingSpaces(0), leadingIncluded(0) {} QFixed descent; @@ -388,6 +388,7 @@ struct Q_AUTOTEST_EXPORT QScriptLine QFixed textWidth; QFixed textAdvance; int from; + unsigned short trailingSpaces; signed int length : 28; mutable uint justified : 1; mutable uint gridfitted : 1; |