diff --git a/lib/ace/edit_session.js b/lib/ace/edit_session.js index 7d8062cd..eeb9feef 100644 --- a/lib/ace/edit_session.js +++ b/lib/ace/edit_session.js @@ -1151,6 +1151,10 @@ var EditSession = function(text, mode) { column: column }; } + + var rowData = this.$documentToScreenRow(row, column); + var screenRow = rowData[0]; + if (row >= this.getLength()) { return { row: screenRow, @@ -1160,11 +1164,8 @@ var EditSession = function(text, mode) { var split; var wrapRowData = this.$wrapData[row]; - var screenRow, screenRowOffset; var screenColumn; - var rowData = this.$documentToScreenRow(row, column); - screenRow = rowData[0]; - screenRowOffset = rowData[1]; + var screenRowOffset = rowData[1]; str = this.getLine(row).substring( wrapRowData[screenRowOffset - 1] || 0, column); @@ -1191,4 +1192,4 @@ var EditSession = function(text, mode) { }).call(EditSession.prototype); exports.EditSession = EditSession; -}); +}); \ No newline at end of file diff --git a/lib/ace/editor.js b/lib/ace/editor.js index 1fa042df..a18cbd02 100644 --- a/lib/ace/editor.js +++ b/lib/ace/editor.js @@ -1023,9 +1023,9 @@ var Editor =function(renderer, session) { this.$blockScrolling += 1; for (var i = ranges.length - 1; i >= 0; --i) this.$tryReplace(ranges[i], replacement); - this.$blockScrolling -= 1; this.selection.setSelectionRange(selection); + this.$blockScrolling -= 1; }, this.$tryReplace = function(range, replacement) {