summaryrefslogtreecommitdiffstats
path: root/src/gui/text/qtextengine.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui/text/qtextengine.cpp')
-rw-r--r--src/gui/text/qtextengine.cpp12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/gui/text/qtextengine.cpp b/src/gui/text/qtextengine.cpp
index 6be84c0186..d11f8c34b1 100644
--- a/src/gui/text/qtextengine.cpp
+++ b/src/gui/text/qtextengine.cpp
@@ -1643,8 +1643,14 @@ void QTextEngine::itemize() const
if (analysis->bidiLevel % 2)
--analysis->bidiLevel;
analysis->flags = QScriptAnalysis::LineOrParagraphSeparator;
- if (option.flags() & QTextOption::ShowLineAndParagraphSeparators)
+ if (option.flags() & QTextOption::ShowLineAndParagraphSeparators) {
+ const int offset = uc - string;
+ layoutData->string.detach();
+ string = reinterpret_cast<const ushort *>(layoutData->string.unicode());
+ uc = string + offset;
+ e = uc + length;
*const_cast<ushort*>(uc) = 0x21B5; // visual line separator
+ }
break;
case QChar::Tabulation:
analysis->flags = QScriptAnalysis::Tab;
@@ -3272,7 +3278,7 @@ int QTextEngine::endOfLine(int lineNum)
insertionPointsForLine(lineNum, insertionPoints);
if (insertionPoints.size() > 0)
- return insertionPoints.last();
+ return insertionPoints.constLast();
return 0;
}
@@ -3282,7 +3288,7 @@ int QTextEngine::beginningOfLine(int lineNum)
insertionPointsForLine(lineNum, insertionPoints);
if (insertionPoints.size() > 0)
- return insertionPoints.first();
+ return insertionPoints.constFirst();
return 0;
}