aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Schulz <david.schulz@qt.io>2021-12-02 10:16:42 +0100
committerDavid Schulz <david.schulz@qt.io>2021-12-02 11:42:46 +0000
commitdbc4cd6f4a353c2d48c3ca214088759489b3fceb (patch)
treebcdddeb453429dc377acff5a685c93e40cdce669
parent2e42c99522537bc3102aeff4f01671c0234c11b8 (diff)
TextEditor: always replace cursor
Otherwise some internal data might be outdated. For example inserting text resets the QTextCursorPrivate::x which is used to calculate positions when moving the cursor up or down. Fixes: QTCREATORBUG-26635 Change-Id: I9fee7436a3648f9d3eab7b30f8a09a134c5be356 Reviewed-by: Eike Ziller <eike.ziller@qt.io>
-rw-r--r--src/plugins/texteditor/texteditor.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/plugins/texteditor/texteditor.cpp b/src/plugins/texteditor/texteditor.cpp
index 28fe278cab..c1a272a272 100644
--- a/src/plugins/texteditor/texteditor.cpp
+++ b/src/plugins/texteditor/texteditor.cpp
@@ -6257,10 +6257,10 @@ MultiTextCursor TextEditorWidget::multiTextCursor() const
void TextEditorWidget::setMultiTextCursor(const Utils::MultiTextCursor &cursor)
{
- if (d->m_cursors == cursor)
- return;
- MultiTextCursor oldCursor = d->m_cursors;
+ const MultiTextCursor oldCursor = d->m_cursors;
const_cast<MultiTextCursor &>(d->m_cursors) = cursor;
+ if (oldCursor == d->m_cursors)
+ return;
doSetTextCursor(d->m_cursors.mainCursor(), /*keepMultiSelection*/ true);
QRect updateRect = d->cursorUpdateRect(oldCursor);
if (d->m_highlightCurrentLine)