diff --git a/lib/ace/conf/keybindings/default_mac.js b/lib/ace/conf/keybindings/default_mac.js index 515a88bd..788ed577 100644 --- a/lib/ace/conf/keybindings/default_mac.js +++ b/lib/ace/conf/keybindings/default_mac.js @@ -80,7 +80,7 @@ exports.bindings = { "selectlinestart": "Shift-Home", "selectlineend": "Shift-End", "del": "Delete", - "backspace": "Backspace", + "backspace": "Ctrl-Backspace|Command-Backspace|Option-Backspace|Backspace", "outdent": "Shift-Tab", "indent": "Tab" }; diff --git a/lib/ace/editor.js b/lib/ace/editor.js index 88b869e4..63c99563 100644 --- a/lib/ace/editor.js +++ b/lib/ace/editor.js @@ -64,7 +64,7 @@ var Editor =function(renderer, doc) { return event.preventDefault(e); }); - var mouseTarget = renderer.getMouseEventTarget(); + var mouseTarget = renderer.getMouseEventTarget(); event.addListener(mouseTarget, "mousedown", lang.bind(this.onMouseDown, this)); event.addMultiMouseDownListener(mouseTarget, 0, 2, 500, lang.bind(this.onMouseDoubleClick, this)); event.addMultiMouseDownListener(mouseTarget, 0, 3, 600, lang.bind(this.onMouseTripleClick, this)); @@ -454,7 +454,7 @@ var Editor =function(renderer, doc) { indent += 1; else break; - if (/[^\s]$/.test(line)) + if (/[^\s]/.test(line)) minIndent = Math.min(indent, minIndent); } diff --git a/lib/ace/layer/text.js b/lib/ace/layer/text.js index d1dfe4bc..9ba67f43 100644 --- a/lib/ace/layer/text.js +++ b/lib/ace/layer/text.js @@ -146,7 +146,7 @@ var Text = function(parentEl) { this.updateLines = function(layerConfig, firstRow, lastRow) { this.$computeTabString(); this.config = layerConfig; - + var first = Math.max(firstRow, layerConfig.firstRow); var last = Math.min(lastRow, layerConfig.lastRow); diff --git a/lib/ace/renderloop.js b/lib/ace/renderloop.js index f43efcc1..20fa21fb 100644 --- a/lib/ace/renderloop.js +++ b/lib/ace/renderloop.js @@ -48,16 +48,17 @@ var RenderLoop = function(onRender) { (function() { this.schedule = function(change) { -// this.onRender(change); -// return; + //this.onRender(change); + //return; this.changes = this.changes | change; if (!this.pending) { this.pending = true; var _self = this; this.setTimeoutZero(function() { _self.pending = false; - _self.onRender(_self.changes); + var changes = _self.changes; _self.changes = 0; + _self.onRender(changes); }) } }; diff --git a/lib/ace/scrollbar.js b/lib/ace/scrollbar.js index 85a6e6b7..8ff25a14 100644 --- a/lib/ace/scrollbar.js +++ b/lib/ace/scrollbar.js @@ -62,7 +62,7 @@ var ScrollBar = function(parent) { oop.implement(this, EventEmitter); this.onScroll = function() { - this._dispatchEvent("scroll", {data: this.element.scrollTop}); + this.$dispatchEvent("scroll", {data: this.element.scrollTop}); }; this.getWidth = function() { diff --git a/lib/ace/virtual_renderer.js b/lib/ace/virtual_renderer.js index 6abf9585..c95b2510 100644 --- a/lib/ace/virtual_renderer.js +++ b/lib/ace/virtual_renderer.js @@ -332,7 +332,7 @@ var VirtualRenderer = function(container, theme) { this.$renderChanges = function(changes) { if (!changes || !this.doc || !this.$tokenizer) return; - + // text, scrolling and resize changes can cause the view port size to change if (!this.layerConfig || changes & this.CHANGE_FULL ||