From ff7c1b5182d99d562aaadd124404eb3c2a8ad352 Mon Sep 17 00:00:00 2001 From: Sergi Mansilla Date: Sun, 27 Feb 2011 12:44:43 +0100 Subject: [PATCH] |pollSizeChanges| is called only on resize, not every 500ms --- lib/ace/editor.js | 55 ++++++++++++++++++++++++----------------------- 1 file changed, 28 insertions(+), 27 deletions(-) diff --git a/lib/ace/editor.js b/lib/ace/editor.js index b204a8f8..d85d95e8 100644 --- a/lib/ace/editor.js +++ b/lib/ace/editor.js @@ -63,7 +63,7 @@ var Editor =function(renderer, session) { this.textInput = new TextInput(renderer.getTextAreaContainer(), this); this.keyBinding = new KeyBinding(this); - + // TODO detect touch event support if (useragent.isIPad) { //this.$mouseHandler = new TouchHandler(this); @@ -158,16 +158,16 @@ var Editor =function(renderer, session) { this.$onChangeFrontMarker = this.onChangeFrontMarker.bind(this); this.session.addEventListener("changeFrontMarker", this.$onChangeFrontMarker); - + this.$onChangeBackMarker = this.onChangeBackMarker.bind(this); this.session.addEventListener("changeBackMarker", this.$onChangeBackMarker); - + this.$onChangeBreakpoint = this.onChangeBreakpoint.bind(this); this.session.addEventListener("changeBreakpoint", this.$onChangeBreakpoint); this.$onChangeAnnotation = this.onChangeAnnotation.bind(this); this.session.addEventListener("changeAnnotation", this.$onChangeAnnotation); - + this.$onCursorChange = this.onCursorChange.bind(this); this.session.addEventListener("changeOverwrite", this.$onCursorChange); @@ -206,6 +206,7 @@ var Editor =function(renderer, session) { this.resize = function() { this.renderer.onResize(); + this.renderer.$textLayer.$pollSizeChanges(); }; this.setTheme = function(theme) { @@ -308,7 +309,7 @@ var Editor =function(renderer, session) { this.$updateHighlightActiveLine = function() { var session = this.getSession(); - + if (session.$highlightLineMarker) { session.removeMarker(session.$highlightLineMarker); } @@ -323,7 +324,7 @@ var Editor =function(renderer, session) { this.onSelectionChange = function(e) { var session = this.getSession(); - + if (session.$selectionMarker) { session.removeMarker(session.$selectionMarker); } @@ -344,11 +345,11 @@ var Editor =function(renderer, session) { this.onChangeFrontMarker = function() { this.renderer.updateFrontMarkers(); }; - + this.onChangeBackMarker = function() { this.renderer.updateBackMarkers(); }; - + this.onChangeBreakpoint = function() { this.renderer.setBreakpoints(this.session.getBreakpoints()); }; @@ -429,18 +430,18 @@ var Editor =function(renderer, session) { var lineIndent = this.mode.getNextLineIndent(lineState, line.slice(0, cursor.column), this.session.getTabString()); var end = this.session.insert(cursor, text); - + var lineState = this.bgTokenizer.getState(cursor.row); // TODO disabled multiline auto indent // possibly doing the indent before inserting the text // if (cursor.row !== end.row) { if (this.session.getDocument().isNewLine(text)) { this.moveCursorTo(cursor.row+1, 0); - + var size = this.session.getTabSize(), minIndent = Number.MAX_VALUE; - + for (var row = cursor.row + 1; row <= end.row; ++row) { var indent = 0; @@ -472,7 +473,7 @@ var Editor =function(renderer, session) { if (shouldOutdent) { this.mode.autoOutdent(lineState, this.session, cursor.row); } - }; + }; } this.onTextInput = function(text) { @@ -484,7 +485,7 @@ var Editor =function(renderer, session) { }; this.setOverwrite = function(overwrite) { - this.session.setOverwrite(); + this.session.setOverwrite(); }; this.getOverwrite = function() { @@ -601,7 +602,7 @@ var Editor =function(renderer, session) { this.session.remove(this.getSelectionRange()); this.clearSelection(); }; - + this.removeWordRight = function() { if (this.$readOnly) return; @@ -612,7 +613,7 @@ var Editor =function(renderer, session) { this.session.remove(this.getSelectionRange()); this.clearSelection(); }; - + this.removeWordLeft = function() { if (this.$readOnly) return; @@ -623,7 +624,7 @@ var Editor =function(renderer, session) { this.session.remove(this.getSelectionRange()); this.clearSelection(); }; - + this.removeToLineStart = function() { if (this.$readOnly) return; @@ -634,7 +635,7 @@ var Editor =function(renderer, session) { this.session.remove(this.getSelectionRange()); this.clearSelection(); }; - + this.removeToLineEnd = function() { if (this.$readOnly) return; @@ -649,30 +650,30 @@ var Editor =function(renderer, session) { this.splitLine = function() { if (this.$readOnly) return; - + if (!this.selection.isEmpty()) { this.session.remove(this.getSelectionRange()); this.clearSelection(); } - + var cursor = this.getCursorPosition(); this.insert("\n"); this.moveCursorToPosition(cursor); }; - + this.transposeLetters = function() { if (this.$readOnly) return; - + if (!this.selection.isEmpty()) { return; } - + var cursor = this.getCursorPosition(); var column = cursor.column; if (column == 0) return; - + var line = this.session.getLine(cursor.row); if (column < line.length) { var swap = line.charAt(column) + line.charAt(column-1); @@ -684,7 +685,7 @@ var Editor =function(renderer, session) { } this.session.replace(range, swap); }; - + this.indent = function() { if (this.$readOnly) return; @@ -897,7 +898,7 @@ var Editor =function(renderer, session) { this.scrollToLine = function(line, center) { this.renderer.scrollToLine(line, center); }; - + this.centerSelection = function() { var range = this.getSelectionRange(); var line = Math.floor(range.start.row + (range.end.row - range.start.row) / 2); @@ -922,7 +923,7 @@ var Editor =function(renderer, session) { this.selection.selectAll(); this.$blockScrolling -= 1; }; - + this.clearSelection = function() { this.selection.clearSelection(); }; @@ -1049,7 +1050,7 @@ var Editor =function(renderer, session) { this.$blockScrolling += 1; for (var i = ranges.length - 1; i >= 0; --i) this.$tryReplace(ranges[i], replacement); - + this.selection.setSelectionRange(selection); this.$blockScrolling -= 1; },