--- a/editors/TextViewer.py Wed Apr 24 09:30:10 2013 +0200
+++ b/editors/TextViewer.py Wed Apr 24 10:03:47 2013 +0200
@@ -80,6 +80,8 @@
}
def GetCursorPos(old, new):
+ if old == "":
+ return 0
old_length = len(old)
new_length = len(new)
common_length = min(old_length, new_length)
@@ -445,17 +447,20 @@
self.ResetBuffer()
self.DisableEvents = True
old_cursor_pos = self.GetCurrentPos()
+ line = self.Editor.GetFirstVisibleLine()
+ column = self.Editor.GetXOffset()
old_text = self.GetText()
new_text = self.Controler.GetEditedElementText(self.TagName, self.Debug)
- self.SetText(new_text)
- new_cursor_pos = GetCursorPos(old_text, new_text)
- if new_cursor_pos != None:
- self.Editor.GotoPos(new_cursor_pos)
- else:
- self.Editor.GotoPos(old_cursor_pos)
- self.Editor.ScrollToColumn(0)
- self.RefreshJumpList()
- self.Editor.EmptyUndoBuffer()
+ if old_text != new_text:
+ self.SetText(new_text)
+ new_cursor_pos = GetCursorPos(old_text, new_text)
+ self.Editor.LineScroll(column, line)
+ if new_cursor_pos != None:
+ self.Editor.GotoPos(new_cursor_pos)
+ else:
+ self.Editor.GotoPos(old_cursor_pos)
+ self.RefreshJumpList()
+ self.Editor.EmptyUndoBuffer()
self.DisableEvents = False
self.RefreshVariableTree()