From 07c7c86944cd622041edf6e909ba31aa0fa7603d Mon Sep 17 00:00:00 2001 From: nightwing Date: Sun, 23 Feb 2014 12:02:45 +0400 Subject: [PATCH] fix #1827 setScrollMargin Breaks Multiple Selection When Margin is Greater Than 0 --- lib/ace/layer/cursor.js | 2 +- lib/ace/virtual_renderer.js | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/ace/layer/cursor.js b/lib/ace/layer/cursor.js index aaf3ffec..4578482a 100644 --- a/lib/ace/layer/cursor.js +++ b/lib/ace/layer/cursor.js @@ -190,7 +190,7 @@ var Cursor = function(parentEl) { for (var i = 0, n = selections.length; i < n; i++) { var pixelPos = this.getPixelPosition(selections[i].cursor, true); if ((pixelPos.top > config.height + config.offset || - pixelPos.top < -config.offset) && i > 1) { + pixelPos.top < 0) && i > 1) { continue; } diff --git a/lib/ace/virtual_renderer.js b/lib/ace/virtual_renderer.js index 6034cc9c..6f6ab177 100644 --- a/lib/ace/virtual_renderer.js +++ b/lib/ace/virtual_renderer.js @@ -720,7 +720,7 @@ var VirtualRenderer = function(container, theme) { sm.v = sm.top + sm.bottom; sm.h = sm.left + sm.right; if (sm.top && this.scrollTop <= 0 && this.session) - this.session.setScrollTop(sm.top); + this.session.setScrollTop(-sm.top); this.updateFull(); }; @@ -1002,7 +1002,7 @@ var VirtualRenderer = function(container, theme) { minHeight : minHeight, maxHeight : maxHeight, offset : offset, - gutterOffset : Math.ceil((offset + size.height - size.scrollerHeight) / lineHeight), + gutterOffset : Math.max(0, Math.ceil((offset + size.height - size.scrollerHeight) / lineHeight)), height : this.$size.scrollerHeight };