From 0d2a58c9d0d3d13b3f9cb8a58c801c706f403349 Mon Sep 17 00:00:00 2001 From: Daniel Imms <2193314+Tyriar@users.noreply.github.com> Date: Tue, 3 Feb 2026 03:48:28 -0800 Subject: [PATCH] Clean up lifecycle of blink manager --- addons/addon-webgl/src/WebglRenderer.ts | 5 ++--- src/browser/renderer/dom/DomRenderer.ts | 5 ++--- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/addons/addon-webgl/src/WebglRenderer.ts b/addons/addon-webgl/src/WebglRenderer.ts index 14fc6cdb..3e93ca85 100644 --- a/addons/addon-webgl/src/WebglRenderer.ts +++ b/addons/addon-webgl/src/WebglRenderer.ts @@ -107,12 +107,11 @@ export class WebglRenderer extends Disposable implements IRenderer { this._updateDimensions(); this._updateCursorBlink(); this._register(_optionsService.onOptionChange(() => this._handleOptionsChanged())); - this._textBlinkStateManager = new TextBlinkStateManager( + this._textBlinkStateManager = this._register(new TextBlinkStateManager( () => this._requestRedrawViewport(), this._coreBrowserService - ); + )); this._textBlinkStateManager.setIntervalDuration(this._optionsService.rawOptions.blinkIntervalDuration); - this._register(toDisposable(() => this._textBlinkStateManager.dispose())); this._deviceMaxTextureSize = this._gl.getParameter(this._gl.MAX_TEXTURE_SIZE); diff --git a/src/browser/renderer/dom/DomRenderer.ts b/src/browser/renderer/dom/DomRenderer.ts index c00f67a3..23273308 100644 --- a/src/browser/renderer/dom/DomRenderer.ts +++ b/src/browser/renderer/dom/DomRenderer.ts @@ -98,12 +98,11 @@ export class DomRenderer extends Disposable implements IRenderer { this._cursorBlinkStateManager = new CursorBlinkStateManager(this._rowContainer, this._coreBrowserService); this._register(addDisposableListener(this._document, 'mousedown', () => this._cursorBlinkStateManager.restartBlinkAnimation())); this._register(toDisposable(() => this._cursorBlinkStateManager.dispose())); - this._textBlinkStateManager = new TextBlinkStateManager( + this._textBlinkStateManager = this._register(new TextBlinkStateManager( () => this._onRequestRedraw.fire({ start: 0, end: this._bufferService.rows - 1 }), this._coreBrowserService - ); + )); this._textBlinkStateManager.setIntervalDuration(this._optionsService.rawOptions.blinkIntervalDuration); - this._register(toDisposable(() => this._textBlinkStateManager.dispose())); this._register(toDisposable(() => { this._element.classList.remove(TERMINAL_CLASS_PREFIX + this._terminalClass);