summaryrefslogtreecommitdiffstats
path: root/src/gui/text/qtextengine_p.h
diff options
context:
space:
mode:
authorJiang Jiang <jiang.jiang@nokia.com>2011-09-08 14:31:53 (GMT)
committerJiang Jiang <jiang.jiang@nokia.com>2011-09-08 14:31:53 (GMT)
commit80294c375eca9687d1c34e9ab048294373e7f00c (patch)
tree561fc683ec90c7e4a3747c56fc9337b2a3a5fe08 /src/gui/text/qtextengine_p.h
parent6326227674efa85c1a5320141041110d211efc75 (diff)
downloadQt-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.h3
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;