Skip to content

Commit 1bfa666

Browse files
committed
[merge addon] Keep stable scroll position when removing/adding alignment padding
See http://discuss.codemirror.net/t/jittering-mousewheel-scrolling-with-merge-addon-align-mode/125
1 parent 9e56052 commit 1bfa666

File tree

1 file changed

+5
-1
lines changed

1 file changed

+5
-1
lines changed

addon/merge/merge.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -259,11 +259,13 @@
259259
function makeConnections(dv) {
260260
if (!dv.showDifferences) return;
261261

262-
var align = dv.mv.options.connect == "align";
262+
var align = dv.mv.options.connect == "align", oldScrollEdit, oldScrollOrig;
263263
if (align) {
264264
if (!dv.orig.curOp) return dv.orig.operation(function() {
265265
makeConnections(dv);
266266
});
267+
oldScrollEdit = dv.edit.getScrollInfo().top;
268+
oldScrollOrig = dv.orig.getScrollInfo().top;
267269
for (var i = 0; i < dv.aligners.length; i++)
268270
dv.aligners[i].clear();
269271
dv.aligners.length = 0;
@@ -293,6 +295,8 @@
293295
dv.aligners.push(padBelow(dv.edit, 0, extraSpaceAbove.edit));
294296
if (extraSpaceAbove.orig)
295297
dv.aligners.push(padBelow(dv.orig, 0, extraSpaceAbove.orig));
298+
dv.edit.scrollTo(null, oldScrollEdit);
299+
dv.orig.scrollTo(null, oldScrollOrig);
296300
}
297301
}
298302

0 commit comments

Comments
 (0)