From 37973823c50f71314db263e9a3ef57e3e5c48f0c Mon Sep 17 00:00:00 2001
From: con <qtc-committer@nokia.com>
Date: Thu, 19 Mar 2009 15:01:12 +0100
Subject: [PATCH] One step to being able to jump back in a senseful way...

---
 src/plugins/texteditor/basetexteditor.cpp | 9 +++++----
 src/plugins/texteditor/basetexteditor.h   | 2 +-
 2 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/src/plugins/texteditor/basetexteditor.cpp b/src/plugins/texteditor/basetexteditor.cpp
index 88f5f06989f..3ad5b89f24f 100644
--- a/src/plugins/texteditor/basetexteditor.cpp
+++ b/src/plugins/texteditor/basetexteditor.cpp
@@ -959,7 +959,7 @@ void BaseTextEditor::setTextCursor(const QTextCursor &cursor)
         slotSelectionChanged();
 }
 
-void BaseTextEditor::gotoLine(int line, int column, bool saveNewPosition)
+void BaseTextEditor::gotoLine(int line, int column)
 {
     const int blockNumber = line - 1;
     const QTextBlock &block = document()->findBlockByNumber(blockNumber);
@@ -977,8 +977,7 @@ void BaseTextEditor::gotoLine(int line, int column, bool saveNewPosition)
         setTextCursor(cursor);
         centerCursor();
     }
-    if (saveNewPosition)
-        saveCurrentCursorPositionForNavigation();
+    saveCurrentCursorPositionForNavigation();
 }
 
 int BaseTextEditor::position(ITextEditor::PositionOperation posOp, int at) const
@@ -1115,9 +1114,11 @@ bool BaseTextEditor::restoreState(const QByteArray &state)
     stream >> hval;
     stream >> lval;
     stream >> cval;
-    gotoLine(lval, cval, false);
+    d->m_lastCursorChangeWasInteresting = false; // avoid adding last position to history
+    gotoLine(lval, cval);
     verticalScrollBar()->setValue(vval);
     horizontalScrollBar()->setValue(hval);
+    saveCurrentCursorPositionForNavigation();
     return true;
 }
 
diff --git a/src/plugins/texteditor/basetexteditor.h b/src/plugins/texteditor/basetexteditor.h
index 0e7029a9b02..8c106181349 100644
--- a/src/plugins/texteditor/basetexteditor.h
+++ b/src/plugins/texteditor/basetexteditor.h
@@ -241,7 +241,7 @@ public:
 
     // ITextEditor
 
-    void gotoLine(int line, int column = 0, bool saveNewPosition = true);
+    void gotoLine(int line, int column = 0);
 
     int position(
         ITextEditor::PositionOperation posOp = ITextEditor::Current
-- 
GitLab