summaryrefslogtreecommitdiffstats
path: root/src/gui/text/qtextlayout.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui/text/qtextlayout.cpp')
-rw-r--r--src/gui/text/qtextlayout.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/gui/text/qtextlayout.cpp b/src/gui/text/qtextlayout.cpp
index adc5663299..1ac50d3e5c 100644
--- a/src/gui/text/qtextlayout.cpp
+++ b/src/gui/text/qtextlayout.cpp
@@ -2256,8 +2256,10 @@ QList<QGlyphRun> QTextLine::glyphRuns(int from, int length) const
logClusters,
iterator.itemStart,
iterator.itemLength));
- for (int i = 0; i < subLayout.numGlyphs; ++i)
- pos.rx() += subLayout.advances[i].toReal();
+ for (int i = 0; i < subLayout.numGlyphs; ++i) {
+ QFixed justification = QFixed::fromFixed(subLayout.justifications[i].space_18d6);
+ pos.rx() += (subLayout.advances[i] + justification).toReal();
+ }
if (rtl)
end = start;
@@ -2559,6 +2561,10 @@ qreal QTextLine::cursorToX(int *cursorPos, Edge edge) const
}
else
itm = eng->findItem(pos);
+ if (itm < 0) {
+ *cursorPos = 0;
+ return x.toReal();
+ }
eng->shapeLine(line);
const QScriptItem *si = &eng->layoutData->items[itm];