From 5dee6a10c3bd7ebf2360a0963753889197e8fd19 Mon Sep 17 00:00:00 2001 From: nightwing Date: Tue, 24 Jan 2012 12:51:59 +0400 Subject: [PATCH] keep vertical scroll position if gutter size changes during setSession --- lib/ace/virtual_renderer.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/ace/virtual_renderer.js b/lib/ace/virtual_renderer.js index fbc2ecaa..e0326bca 100644 --- a/lib/ace/virtual_renderer.js +++ b/lib/ace/virtual_renderer.js @@ -427,18 +427,20 @@ var VirtualRenderer = function(container, theme) { // full if (changes & this.CHANGE_FULL) { + // update scrollbar first to not loose scroll position when gutter calls resize + this.$updateScrollBar(); this.$textLayer.update(this.layerConfig); if (this.showGutter) this.$gutterLayer.update(this.layerConfig); this.$markerBack.update(this.layerConfig); this.$markerFront.update(this.layerConfig); this.$cursorLayer.update(this.layerConfig); - this.$updateScrollBar(); return; } // scrolling if (changes & this.CHANGE_SCROLL) { + this.$updateScrollBar(); if (changes & this.CHANGE_TEXT || changes & this.CHANGE_LINES) this.$textLayer.update(this.layerConfig); else @@ -449,7 +451,6 @@ var VirtualRenderer = function(container, theme) { this.$markerBack.update(this.layerConfig); this.$markerFront.update(this.layerConfig); this.$cursorLayer.update(this.layerConfig); - this.$updateScrollBar(); return; }