提交 7a3204ce 编写于 作者: A Alex Dima

Fixes #41968: Keep the top line stable, and not the centered one

上级 ecce88d7
...@@ -218,8 +218,14 @@ export class CodeLensContribution implements editorCommon.IEditorContribution { ...@@ -218,8 +218,14 @@ export class CodeLensContribution implements editorCommon.IEditorContribution {
} }
} }
const centeredRange = this._editor.getCenteredRangeInViewport(); const visibleRanges = this._editor.getVisibleRanges();
const shouldRestoreCenteredRange = centeredRange && (groups.length !== this._lenses.length && this._editor.getScrollTop() !== 0); const visiblePosition = (visibleRanges.length > 0 ? visibleRanges[0].getStartPosition() : null);
let visiblePositionScrollDelta = 0;
if (visiblePosition) {
const visiblePositionScrollTop = this._editor.getTopForPosition(visiblePosition.lineNumber, visiblePosition.column);
visiblePositionScrollDelta = this._editor.getScrollTop() - visiblePositionScrollTop;
}
this._editor.changeDecorations((changeAccessor) => { this._editor.changeDecorations((changeAccessor) => {
this._editor.changeViewZones((accessor) => { this._editor.changeViewZones((accessor) => {
...@@ -259,8 +265,10 @@ export class CodeLensContribution implements editorCommon.IEditorContribution { ...@@ -259,8 +265,10 @@ export class CodeLensContribution implements editorCommon.IEditorContribution {
helper.commit(changeAccessor); helper.commit(changeAccessor);
}); });
}); });
if (shouldRestoreCenteredRange) {
this._editor.revealRangeInCenter(centeredRange, editorCommon.ScrollType.Immediate); if (visiblePosition) {
const visiblePositionScrollTop = this._editor.getTopForPosition(visiblePosition.lineNumber, visiblePosition.column);
this._editor.setScrollTop(visiblePositionScrollTop + visiblePositionScrollDelta);
} }
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册