From 97befb6238f2a364c73f1158923a50f6b8752f7f Mon Sep 17 00:00:00 2001 From: "Cheng-Han, Wu" Date: Mon, 16 May 2016 23:02:59 +0800 Subject: [PATCH] Fix on paste or cut text might trigger syncscroll --- public/js/index.js | 4 +++- public/js/syncscroll.js | 6 +++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/public/js/index.js b/public/js/index.js index e47b8c1..7465044 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 f0c7491..de08ee3 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;