From f693399c766248dc0a561f62360efc3bc90d42d1 Mon Sep 17 00:00:00 2001 From: Cheng-Han, Wu Date: Wed, 20 Apr 2016 22:34:52 +0800 Subject: Fix view scroll position might lost when editor changes the last line and might get wrong knob position --- public/js/index.js | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) (limited to 'public') diff --git a/public/js/index.js b/public/js/index.js index 295ff4ba..f38e2baf 100644 --- a/public/js/index.js +++ b/public/js/index.js @@ -783,12 +783,7 @@ function checkEditorStyle() { if (scrollbarStyle == 'overlay' || currentMode == modeType.both) { ui.area.codemirrorScroll.css('height', desireHeight + 'px'); ui.area.codemirrorScroll.css('min-height', ''); - // workaround simple scroll bar knob - // will get wrong position when editor height changed - var scrollInfo = editor.getScrollInfo(); - preventSyncScroll = true; - editor.scrollTo(null, scrollInfo.top - 1); - editor.scrollTo(null, scrollInfo.top); + checkEditorScrollbar(); } else if (scrollbarStyle == 'native') { ui.area.codemirrorScroll.css('height', ''); ui.area.codemirrorScroll.css('min-height', desireHeight + 'px'); @@ -806,6 +801,15 @@ function checkEditorStyle() { }); } +function checkEditorScrollbar() { + // workaround simple scroll bar knob + // will get wrong position when editor height changed + var scrollInfo = editor.getScrollInfo(); + preventSyncScroll = true; + editor.scrollTo(null, scrollInfo.top - 1); + editor.scrollTo(null, scrollInfo.top); +} + function checkTocStyle() { //toc right var paddingRight = parseFloat(ui.area.markdown.css('padding-right')); @@ -2216,6 +2220,7 @@ editor.on('changes', function (cm, changes) { viewportMargin = newViewportMargin; windowResize(); } + checkEditorScrollbar(); }); editor.on('focus', function (cm) { for (var i = 0; i < onlineUsers.length; i++) { -- cgit v1.2.3