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 (cherry picked from commit 1a8a36eb6b6df9e2550b5eaa4606f2d411fd4294) Change-Id: I94972ebaea2e1bdb09950523c43844351b304abe Reviewed-on: http://codereview.qt.nokia.com/3462 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com> Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
This commit is contained in:
parent
9a442b7b54
commit
e6cecd9ce0
@ -2093,7 +2093,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;
|
||||
|
Loading…
Reference in New Issue
Block a user