From 8ddfe42838edd69c71b58a23af3da556928a4eb2 Mon Sep 17 00:00:00 2001 From: Johannes Rieken Date: Mon, 14 Oct 2019 16:01:37 +0200 Subject: [PATCH] fix #78202 --- .../editor/contrib/zoneWidget/zoneWidget.ts | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/src/vs/editor/contrib/zoneWidget/zoneWidget.ts b/src/vs/editor/contrib/zoneWidget/zoneWidget.ts index 30c269c8b21..6a0346a2137 100644 --- a/src/vs/editor/contrib/zoneWidget/zoneWidget.ts +++ b/src/vs/editor/contrib/zoneWidget/zoneWidget.ts @@ -425,14 +425,23 @@ export abstract class ZoneWidget implements IHorizontalSashLayoutProvider { const model = this.editor.getModel(); if (model) { - // Reveal the line above or below the zone widget, to get the zone widget in the viewport - const revealLineNumber = Math.min(model.getLineCount(), Math.max(1, where.endLineNumber + 1)); - this.revealLine(revealLineNumber); + const revealLine = where.endLineNumber + 1; + if (revealLine <= model.getLineCount()) { + // reveal line below the zone widget + this.revealLine(revealLine, false); + } else { + // reveal last line atop + this.revealLine(model.getLineCount(), true); + } } } - protected revealLine(lineNumber: number) { - this.editor.revealLine(lineNumber, ScrollType.Smooth); + protected revealLine(lineNumber: number, isLastLine: boolean) { + if (isLastLine) { + this.editor.revealLineInCenter(lineNumber, ScrollType.Smooth); + } else { + this.editor.revealLine(lineNumber, ScrollType.Smooth); + } } protected setCssClass(className: string, classToReplace?: string): void { -- GitLab