Handle options within blink state manager

This commit is contained in:
Daniel Imms
2026-02-03 03:55:25 -08:00
parent 0d2a58c9d0
commit f3a7cac49f
3 changed files with 11 additions and 7 deletions
+2 -3
View File
@@ -109,9 +109,9 @@ export class WebglRenderer extends Disposable implements IRenderer {
this._register(_optionsService.onOptionChange(() => this._handleOptionsChanged()));
this._textBlinkStateManager = this._register(new TextBlinkStateManager(
() => this._requestRedrawViewport(),
this._coreBrowserService
this._coreBrowserService,
this._optionsService
));
this._textBlinkStateManager.setIntervalDuration(this._optionsService.rawOptions.blinkIntervalDuration);
this._deviceMaxTextureSize = this._gl.getParameter(this._gl.MAX_TEXTURE_SIZE);
@@ -257,7 +257,6 @@ export class WebglRenderer extends Disposable implements IRenderer {
this._updateDimensions();
this._refreshCharAtlas();
this._updateCursorBlink();
this._textBlinkStateManager.setIntervalDuration(this._optionsService.rawOptions.blinkIntervalDuration);
}
/**
+2 -3
View File
@@ -100,9 +100,9 @@ export class DomRenderer extends Disposable implements IRenderer {
this._register(toDisposable(() => this._cursorBlinkStateManager.dispose()));
this._textBlinkStateManager = this._register(new TextBlinkStateManager(
() => this._onRequestRedraw.fire({ start: 0, end: this._bufferService.rows - 1 }),
this._coreBrowserService
this._coreBrowserService,
this._optionsService
));
this._textBlinkStateManager.setIntervalDuration(this._optionsService.rawOptions.blinkIntervalDuration);
this._register(toDisposable(() => {
this._element.classList.remove(TERMINAL_CLASS_PREFIX + this._terminalClass);
@@ -447,7 +447,6 @@ export class DomRenderer extends Disposable implements IRenderer {
this._optionsService.rawOptions.fontWeightBold
);
this._setDefaultSpacing();
this._textBlinkStateManager.setIntervalDuration(this._optionsService.rawOptions.blinkIntervalDuration);
}
public clear(): void {
@@ -5,6 +5,7 @@
import { ICoreBrowserService } from 'browser/services/Services';
import { Disposable, toDisposable } from 'common/Lifecycle';
import { IOptionsService } from 'common/services/Services';
export class TextBlinkStateManager extends Disposable {
private _intervalDuration: number = 0;
@@ -13,9 +14,14 @@ export class TextBlinkStateManager extends Disposable {
constructor(
private readonly _renderCallback: () => void,
private readonly _coreBrowserService: ICoreBrowserService
private readonly _coreBrowserService: ICoreBrowserService,
private readonly _optionsService: IOptionsService
) {
super();
this._register(this._optionsService.onSpecificOptionChange('blinkIntervalDuration', duration => {
this.setIntervalDuration(duration);
}));
this.setIntervalDuration(this._optionsService.rawOptions.blinkIntervalDuration);
this._register(toDisposable(() => this._clearInterval()));
}