@@ -8,7 +8,7 @@ import type { WebglAddon as WebglAddonType } from '@xterm/addon-webgl';
88import type { LigaturesAddon as LigaturesAddonType } from '@xterm/addon-ligatures' ;
99import type { IBufferLine , IMarker , ITerminalOptions , ITheme , Terminal as RawXtermTerminal , Terminal as XTermTerminal } from '@xterm/xterm' ;
1010import { $ , addDisposableListener , addStandardDisposableListener , getWindow } from '../../../../../base/browser/dom.js' ;
11- import { throttle } from '../../../../../base/common/decorators.js' ;
11+ import { debounce , throttle } from '../../../../../base/common/decorators.js' ;
1212import { Event } from '../../../../../base/common/event.js' ;
1313import { Disposable , MutableDisposable , combinedDisposable , toDisposable } from '../../../../../base/common/lifecycle.js' ;
1414import { removeAnsiEscapeCodes } from '../../../../../base/common/strings.js' ;
@@ -63,6 +63,7 @@ export class TerminalStickyScrollOverlay extends Disposable {
6363 private _state : OverlayState = OverlayState . Off ;
6464 private _isRefreshQueued = false ;
6565 private _rawMaxLineCount : number = 5 ;
66+ private _pendingShowOperation = false ;
6667
6768 constructor (
6869 private readonly _instance : ITerminalInstance ,
@@ -187,9 +188,25 @@ export class TerminalStickyScrollOverlay extends Disposable {
187188
188189 private _setVisible ( isVisible : boolean ) {
189190 if ( isVisible ) {
191+ this . _pendingShowOperation = true ;
192+ this . _show ( ) ;
193+ } else {
194+ this . _hide ( ) ;
195+ }
196+ }
197+
198+ @debounce ( 100 )
199+ private _show ( ) : void {
200+ if ( this . _pendingShowOperation ) {
190201 this . _ensureElement ( ) ;
202+ this . _element ?. classList . toggle ( CssClasses . Visible , true ) ;
191203 }
192- this . _element ?. classList . toggle ( CssClasses . Visible , isVisible ) ;
204+ this . _pendingShowOperation = false ;
205+ }
206+
207+ private _hide ( ) : void {
208+ this . _pendingShowOperation = false ;
209+ this . _element ?. classList . toggle ( CssClasses . Visible , false ) ;
193210 }
194211
195212 private _refresh ( ) : void {
0 commit comments