From 2fb42c554e222ea4ee594f394e9503ca4ec660ab Mon Sep 17 00:00:00 2001 From: Daniel Imms <2193314+Tyriar@users.noreply.github.com> Date: Sun, 28 Dec 2025 15:16:23 -0800 Subject: [PATCH] Force reset to use sync render Fixes #5184 --- src/browser/CoreBrowserTerminal.ts | 6 +++--- src/browser/services/RenderService.ts | 6 +++--- src/browser/services/Services.ts | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/browser/CoreBrowserTerminal.ts b/src/browser/CoreBrowserTerminal.ts index a1c27fee..368aeb77 100644 --- a/src/browser/CoreBrowserTerminal.ts +++ b/src/browser/CoreBrowserTerminal.ts @@ -847,8 +847,8 @@ export class CoreBrowserTerminal extends CoreTerminal implements ITerminal { * @param start The row to start from (between 0 and this.rows - 1). * @param end The row to end at (between start and this.rows - 1). */ - public refresh(start: number, end: number): void { - this._renderService?.refreshRows(start, end); + public refresh(start: number, end: number, sync: boolean = false): void { + this._renderService?.refreshRows(start, end, sync); } /** @@ -1281,7 +1281,7 @@ export class CoreBrowserTerminal extends CoreTerminal implements ITerminal { this._customKeyEventHandler = customKeyEventHandler; // do a full screen refresh - this.refresh(0, this.rows - 1); + this.refresh(0, this.rows - 1, true); } public clearTextureAtlas(): void { diff --git a/src/browser/services/RenderService.ts b/src/browser/services/RenderService.ts index 26334288..f2a60512 100644 --- a/src/browser/services/RenderService.ts +++ b/src/browser/services/RenderService.ts @@ -111,7 +111,7 @@ export class RenderService extends Disposable implements IRenderService { this._register(this._optionsService.onMultipleOptionChange([ 'cursorBlink', 'cursorStyle' - ], () => this.refreshRows(bufferService.buffer.y, bufferService.buffer.y, true))); + ], () => this.refreshRows(bufferService.buffer.y, bufferService.buffer.y, undefined, true))); this._register(themeService.onChangeColors(() => this._fullRefresh())); @@ -144,7 +144,7 @@ export class RenderService extends Disposable implements IRenderService { } } - public refreshRows(start: number, end: number, isRedrawOnly: boolean = false, sync: boolean = false): void { + public refreshRows(start: number, end: number, sync: boolean = false, isRedrawOnly: boolean = false): void { if (this._isPaused) { this._needsFullRefresh = true; return; @@ -239,7 +239,7 @@ export class RenderService extends Disposable implements IRenderService { this._renderer.value = renderer; // If the value was not set, the terminal is being disposed so ignore it if (this._renderer.value) { - this._renderer.value.onRequestRedraw(e => this.refreshRows(e.start, e.end, true, e.sync)); + this._renderer.value.onRequestRedraw(e => this.refreshRows(e.start, e.end, e.sync, true)); // Force a refresh this._needsSelectionRefresh = true; diff --git a/src/browser/services/Services.ts b/src/browser/services/Services.ts index 19a8fcbc..6103ada1 100644 --- a/src/browser/services/Services.ts +++ b/src/browser/services/Services.ts @@ -77,7 +77,7 @@ export interface IRenderService extends IDisposable { addRefreshCallback(callback: FrameRequestCallback): number; - refreshRows(start: number, end: number): void; + refreshRows(start: number, end: number, sync?: boolean): void; clearTextureAtlas(): void; resize(cols: number, rows: number): void; hasRenderer(): boolean;