diff --git a/lib/ace/editor.js b/lib/ace/editor.js index 0e1df71b..13aea2be 100644 --- a/lib/ace/editor.js +++ b/lib/ace/editor.js @@ -282,6 +282,14 @@ var Editor = function(renderer, session) { this._emit("blur"); }; + function cursorChange() { + this.renderer.updateCursor(); + + // move text input over the cursor + // this is required for iOS and IME + this.renderer.moveTextAreaToCursor(this.textInput.getElement()); + } + this.onDocumentChange = function(e) { var delta = e.data; var range = delta.range; @@ -296,7 +304,7 @@ var Editor = function(renderer, session) { this._emit("change", e); // update cursor because tab characters can influence the cursor position - this.onCursorChange(); + cursorChange.call(this); }; this.onTokenizerUpdate = function(e) { @@ -313,16 +321,12 @@ var Editor = function(renderer, session) { }; this.onCursorChange = function() { - this.renderer.updateCursor(); + cursorChange.call(this); if (!this.$blockScrolling) { this.renderer.scrollCursorIntoView(); } - // move text input over the cursor - // this is required for iOS and IME - this.renderer.moveTextAreaToCursor(this.textInput.getElement()); - this.$highlightBrackets(); this.$updateHighlightActiveLine(); }; @@ -1239,7 +1243,7 @@ var Editor = function(renderer, session) { var cursor = this.getCursorPosition(); if (!this.isRowFullyVisible(cursor.row)) this.scrollToLine(cursor.row, true); - + //@todo scroll X //if (!this.isColumnFullyVisible(cursor.column)) //this.scrollToRow(cursor.column);