diff --git a/src/browser/Viewport.ts b/src/browser/Viewport.ts index 20e4db09d4..1a9f222575 100644 --- a/src/browser/Viewport.ts +++ b/src/browser/Viewport.ts @@ -94,7 +94,12 @@ export class Viewport extends Disposable { })); this._register(this._bufferService.onResize(() => this.queueSync())); - this._register(this._bufferService.buffers.onBufferActivate(() => this.queueSync())); + this._register(this._bufferService.buffers.onBufferActivate(() => { + // Reset _latestYDisp when switching buffers to prevent stale scroll position + // from alt buffer contaminating normal buffer scroll position + this._latestYDisp = undefined; + this.queueSync(); + })); this._register(this._bufferService.onScroll(() => this._sync())); this._register(this._scrollableElement.onScroll(e => this._handleScroll(e))); @@ -157,7 +162,7 @@ export class Viewport extends Disposable { }); this._suppressOnScrollHandler = false; - // If ydisp has been changed by some other copmonent (input/buffer), then stop animating smooth + // If ydisp has been changed by some other component (input/buffer), then stop animating smooth // scroll and scroll there immediately. if (ydisp !== this._latestYDisp) { this._scrollableElement.setScrollPosition({