diff -r 50246061d5c6 -r ac9896336b90 editors/TextViewer.py --- 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()