From dfaff021a84c91e687c53ddfcd454a2a94f36ed3 Mon Sep 17 00:00:00 2001 From: Rob Lourens Date: Fri, 18 Oct 2019 17:03:28 -0700 Subject: [PATCH] Let ListWidget's reveal take no action if the revealed element is already overflowing the viewport Fix #78237 --- src/vs/base/browser/ui/list/listWidget.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/vs/base/browser/ui/list/listWidget.ts b/src/vs/base/browser/ui/list/listWidget.ts index 40105bc41f4..48a5214a0d2 100644 --- a/src/vs/base/browser/ui/list/listWidget.ts +++ b/src/vs/base/browser/ui/list/listWidget.ts @@ -1533,7 +1533,9 @@ export class List implements ISpliceable, IDisposable { const viewItemBottom = elementTop + elementHeight; const wrapperBottom = scrollTop + this.view.renderHeight; - if (elementTop < scrollTop) { + if (elementTop < scrollTop && viewItemBottom >= wrapperBottom) { + // The element is already overflowing the viewport, no-op + } else if (elementTop < scrollTop) { this.view.setScrollTop(elementTop); } else if (viewItemBottom >= wrapperBottom) { this.view.setScrollTop(viewItemBottom - this.view.renderHeight);