diff --git a/public/js/index.js b/public/js/index.js index e47b8c18..7465044a 100644 --- a/public/js/index.js +++ b/public/js/index.js @@ -822,7 +822,7 @@ function checkEditorScrollbar() { // workaround simple scroll bar knob // will get wrong position when editor height changed var scrollInfo = editor.getScrollInfo(); - preventSyncScroll = true; + if (!preventSyncScroll) preventSyncScroll = true; editor.scrollTo(null, scrollInfo.top - 1); editor.scrollTo(null, scrollInfo.top); } @@ -2422,9 +2422,11 @@ editor.on('beforeChange', function (cm, change) { cmClient.editorAdapter.ignoreNextChange = true; }); editor.on('cut', function () { + preventSyncScroll = 3; windowResize(); //workaround for scrollMap }); editor.on('paste', function () { + preventSyncScroll = 3; windowResize(); //workaround for scrollMap }); editor.on('changes', function (cm, changes) { diff --git a/public/js/syncscroll.js b/public/js/syncscroll.js index f0c7491b..de08ee39 100644 --- a/public/js/syncscroll.js +++ b/public/js/syncscroll.js @@ -257,7 +257,11 @@ function getEditorLineNoByTop(top) { function syncScrollToView(event, _lineNo) { if (currentMode != modeType.both) return; if (preventSyncScroll) { - preventSyncScroll = false; + if (typeof preventSyncScroll === 'number') { + preventSyncScroll--; + } else { + preventSyncScroll = false; + } return; } var lineNo, posTo;