From b4d107284da593d10b09b3ef0e7b2281b6fa07e8 Mon Sep 17 00:00:00 2001 From: Julian Viereck Date: Tue, 15 Feb 2011 18:43:42 +0800 Subject: [PATCH] On font size change, call onResize on the renderer to force update of scrollbars/wrap data --- lib/ace/virtual_renderer.js | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/lib/ace/virtual_renderer.js b/lib/ace/virtual_renderer.js index 6be72b88..952a20a4 100644 --- a/lib/ace/virtual_renderer.js +++ b/lib/ace/virtual_renderer.js @@ -103,6 +103,7 @@ var VirtualRenderer = function(container, theme) { _self.characterWidth = textLayer.getCharacterWidth(); _self.lineHeight = textLayer.getLineHeight(); _self.$updatePrintMargin(); + _self.onResize(true); _self.$loop.schedule(_self.CHANGE_FULL); }); @@ -286,7 +287,7 @@ var VirtualRenderer = function(container, theme) { if (!this.$showPrintMargin && !this.$printMarginEl) return; - + if (!this.$printMarginEl) { containerEl = document.createElement("div"); containerEl.className = "ace_print_margin_layer"; @@ -313,18 +314,18 @@ var VirtualRenderer = function(container, theme) { return this.container; }; - this.moveTextAreaToCursor = function(textarea) { + this.moveTextAreaToCursor = function(textarea) { // in IE the native cursor always shines through if (useragent.isIE) return; - + var pos = this.$cursorLayer.getPixelPosition(); if (!pos) return; var bounds = this.content.getBoundingClientRect(); var offset = (this.layerConfig && this.layerConfig.offset) || 0; - + textarea.style.left = (bounds.left + pos.left + this.$padding) + "px"; textarea.style.top = (bounds.top + pos.top - this.scrollTop + offset) + "px"; }; @@ -427,7 +428,7 @@ var VirtualRenderer = function(container, theme) { if (changes & (this.CHANGE_MARKER | this.CHANGE_MARKER_FRONT)) { this.$markerFront.update(this.layerConfig); } - + if (changes & (this.CHANGE_MARKER | this.CHANGE_MARKER_BACK)) { this.$markerBack.update(this.layerConfig); } @@ -678,15 +679,15 @@ var VirtualRenderer = function(container, theme) { this.$composition.className = "ace_composition"; this.content.appendChild(this.$composition); } - + this.$composition.innerHTML = " "; - + var pos = this.$cursorLayer.getPixelPosition(); var style = this.$composition.style; style.top = pos.top + "px"; style.left = (pos.left + this.$padding) + "px"; style.height = this.lineHeight + "px"; - + this.hideCursor(); };