diff --git a/lib/ace/selection.js b/lib/ace/selection.js index ee19fa99..c2ef2b42 100644 --- a/lib/ace/selection.js +++ b/lib/ace/selection.js @@ -56,8 +56,6 @@ var Selection = function(session) { _self._dispatchEvent("changeCursor"); if (!_self.$isEmpty) _self._dispatchEvent("changeSelection"); - if (e.old.row == e.value.row) - _self.$updateDesiredColumn(); }); this.selectionAnchor.on("change", function() { @@ -435,7 +433,6 @@ var Selection = function(session) { ); var screenCol = (chars == 0 && this.$desiredColumn) || screenPos.column; var docPos = this.session.screenToDocumentPosition(screenPos.row + rows, screenCol); - this.moveCursorTo(docPos.row, docPos.column + chars, chars == 0); }; diff --git a/lib/ace/selection_test.js b/lib/ace/selection_test.js index 40336444..da76de45 100644 --- a/lib/ace/selection_test.js +++ b/lib/ace/selection_test.js @@ -388,6 +388,18 @@ module.exports = { selection.moveCursorDown(); assert.position(selection.getCursor(), 0, 12); + }, + + "test go line up twice and then once down when in the second should go back to the previous column": function() { + var session = new EditSession("juhu\nkinners"); + var selection = session.getSelection(); + + selection.moveCursorTo(1, 4); + selection.moveCursorUp(); + selection.moveCursorUp(); + selection.moveCursorDown(); + + assert.position(selection.getCursor(), 1, 4); } };