summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>2011-08-24 07:13:45 (GMT)
committerEskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>2011-08-24 07:36:59 (GMT)
commit1a8a36eb6b6df9e2550b5eaa4606f2d411fd4294 (patch)
treeb6489e7d9171e45714dbf80c910c81852b2e6c2b
parent2b6b6acec2f659f50416c7d6f369a266de19373b (diff)
downloadQt-1a8a36eb6b6df9e2550b5eaa4606f2d411fd4294.zip
Qt-1a8a36eb6b6df9e2550b5eaa4606f2d411fd4294.tar.gz
Qt-1a8a36eb6b6df9e2550b5eaa4606f2d411fd4294.tar.bz2
Fix justification of RTL text
Since the trailing space is included in the QScriptLine, it may affect the positions of preceding script items when the text is RTL. The best solution for this would be to disregard the trailing space in the layout process, or somehow make it have an advance of 0 so it doesn't affect the layout. However, to minimize the impact of the change, and to be consistent with previous work arounds such as bf992df6434fc37715f728ca09601c5567dd83c9, we simply include the trailing (visually leading) space in the justification pass for now. Task-number: QTBUG-20920 Reviewed-by: Lars
-rw-r--r--src/gui/text/qtextengine.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/gui/text/qtextengine.cpp b/src/gui/text/qtextengine.cpp
index 9f148ee..aa4a20d 100644
--- a/src/gui/text/qtextengine.cpp
+++ b/src/gui/text/qtextengine.cpp
@@ -2087,7 +2087,8 @@ void QTextEngine::justify(const QScriptLine &line)
}
}
- QFixed need = line.width - line.textWidth;
+ QFixed leading = leadingSpaceWidth(line);
+ QFixed need = line.width - line.textWidth - leading;
if (need < 0) {
// line overflows already!
const_cast<QScriptLine &>(line).justified = true;