summaryrefslogtreecommitdiff
path: root/src/plugins/texteditor/basetextdocument.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/texteditor/basetextdocument.cpp')
-rw-r--r--src/plugins/texteditor/basetextdocument.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/plugins/texteditor/basetextdocument.cpp b/src/plugins/texteditor/basetextdocument.cpp
index d28e2e4dee..3dc1832710 100644
--- a/src/plugins/texteditor/basetextdocument.cpp
+++ b/src/plugins/texteditor/basetextdocument.cpp
@@ -165,8 +165,8 @@ bool BaseTextDocument::save(const QString &fileName)
// When saving the current editor, make sure to maintain the cursor position for undo
Core::IEditor *currentEditor = Core::EditorManager::instance()->currentEditor();
if (BaseTextEditorEditable *editable = qobject_cast<BaseTextEditorEditable*>(currentEditor)) {
- if (editable->file() == this)
- cursor = editable->editor()->textCursor();
+ if (editable->file() == this)
+ cursor.setPosition(editable->editor()->textCursor().position());
}
cursor.beginEditBlock();
@@ -373,6 +373,7 @@ void BaseTextDocument::cleanWhitespace(const QTextCursor &cursor)
{
bool hasSelection = cursor.hasSelection();
QTextCursor copyCursor = cursor;
+ copyCursor.setVisualNavigation(false);
copyCursor.beginEditBlock();
cleanWhitespace(copyCursor, true, true);
if (!hasSelection)
@@ -383,6 +384,7 @@ void BaseTextDocument::cleanWhitespace(const QTextCursor &cursor)
void BaseTextDocument::cleanWhitespace(QTextCursor &cursor, bool cleanIndentation, bool inEntireDocument)
{
BaseTextDocumentLayout *documentLayout = qobject_cast<BaseTextDocumentLayout*>(m_document->documentLayout());
+ Q_ASSERT(cursor.visualNavigation() == false);
QTextBlock block = m_document->findBlock(cursor.selectionStart());
QTextBlock end;