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);