From d90acf88e3f73dd00e85ee9435ddc4263acfcfbb Mon Sep 17 00:00:00 2001 From: "Cheng-Han, Wu" Date: Fri, 27 May 2016 02:04:38 +0800 Subject: [PATCH] Update and fix editor might not sync scrolling from edit mode to both mode --- public/js/index.js | 25 ++++++++++++++++--------- public/js/syncscroll.js | 6 +----- 2 files changed, 17 insertions(+), 14 deletions(-) diff --git a/public/js/index.js b/public/js/index.js index 832e0d1..8671af4 100644 --- a/public/js/index.js +++ b/public/js/index.js @@ -721,15 +721,17 @@ function windowResizeInner(callback) { //refresh editor if (loaded) { if (editor.getOption('scrollbarStyle') === 'native') { - clearMap(); - if (editorHasFocus()) { - syncScrollToView(); - } else { - syncScrollToEdit(); - } - updateScrollspy(); - if (callback && typeof callback === 'function') - callback(); + setTimeout(function () { + clearMap(); + if (editorHasFocus()) { + syncScrollToView(); + } else { + syncScrollToEdit(); + } + updateScrollspy(); + if (callback && typeof callback === 'function') + callback(); + }, 1); } else { // force it load all docs at once to prevent scroll knob blink editor.setOption('viewportMargin', Infinity); @@ -1030,6 +1032,11 @@ function changeMode(type) { preventSyncScrollToEdit = 2; syncScrollToView(); } + + if (lastMode == modeType.both && currentMode != modeType.both) { + preventSyncScrollToView = false; + preventSyncScrollToEdit = false; + } if (lastMode != modeType.edit && currentMode == modeType.edit) { editor.refresh(); diff --git a/public/js/syncscroll.js b/public/js/syncscroll.js index 9d0bbe0..53070fc 100644 --- a/public/js/syncscroll.js +++ b/public/js/syncscroll.js @@ -120,11 +120,7 @@ var viewScrollingDebounce = 200; var editScrolling = false; var editScrollingDebounce = 200; -if (editor.getOption('scrollbarStyle') === 'native') { - ui.area.codemirrorScroll.on('scroll', _.throttle(syncScrollToView, editScrollThrottle)); -} else { - editor.on('scroll', _.throttle(syncScrollToView, editScrollThrottle)); -} +ui.area.codemirrorScroll.on('scroll', _.throttle(syncScrollToView, editScrollThrottle)); ui.area.view.on('scroll', _.throttle(syncScrollToEdit, viewScrollThrottle)); var scrollMap, lineHeightMap, viewTop, viewBottom;