From 6d73a44c9ac9e26f21ba3dc6f86c2270de5cd211 Mon Sep 17 00:00:00 2001 From: Eddy Bruel Date: Thu, 2 Dec 2010 15:37:17 +0100 Subject: [PATCH 1/2] Fixed the 'my editor is hungry and eats my lines' issue. --- lib/ace/editor.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/ace/editor.js b/lib/ace/editor.js index cb59bbe9..abaac7fc 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); } From f222d0e64961e7e01bc3b403382fd5692f64fc18 Mon Sep 17 00:00:00 2001 From: Eddy Bruel Date: Thu, 2 Dec 2010 16:23:32 +0100 Subject: [PATCH 2/2] Fixed some minor issues and removed some spurious comments --- lib/ace/conf/keybindings/default_mac.js | 2 +- lib/ace/layer/text.js | 2 +- lib/ace/renderloop.js | 7 ++++--- lib/ace/scrollbar.js | 2 +- lib/ace/virtual_renderer.js | 4 ++-- 5 files changed, 9 insertions(+), 8 deletions(-) diff --git a/lib/ace/conf/keybindings/default_mac.js b/lib/ace/conf/keybindings/default_mac.js index ebb42832..d027d031 100644 --- a/lib/ace/conf/keybindings/default_mac.js +++ b/lib/ace/conf/keybindings/default_mac.js @@ -80,7 +80,7 @@ return { "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/layer/text.js b/lib/ace/layer/text.js index 4651687d..08f3670a 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 2adcdf03..9a8ea34f 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 ec7f0197..576b5ab4 100644 --- a/lib/ace/scrollbar.js +++ b/lib/ace/scrollbar.js @@ -62,7 +62,7 @@ var ScrollBar = function(parent) { oop.implement(this, MEventEmitter); 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 f1bac711..11869f63 100644 --- a/lib/ace/virtual_renderer.js +++ b/lib/ace/virtual_renderer.js @@ -334,7 +334,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 || @@ -373,7 +373,7 @@ var VirtualRenderer = function(container, theme) { this.showGutter && this.$gutterLayer.update(this.layerConfig); } else if (changes & this.CHANGE_LINES) { - this.$updateLines(); + this.$updateLines(); this.$updateScrollBar(); } if (changes & this.CHANGE_GUTTER) { this.showGutter && this.$gutterLayer.update(this.layerConfig);