fix: rerender hidden terminal when visible

This commit is contained in:
Tony Brix
2020-09-11 00:42:18 -05:00
parent c112990d8f
commit 9513c231c9
2 changed files with 17 additions and 1 deletions
+9 -1
View File
@@ -24,6 +24,7 @@ export class RenderService extends Disposable implements IRenderService {
private _renderDebouncer: RenderDebouncer;
private _screenDprMonitor: ScreenDprMonitor;
private _charSizeService: ICharSizeService;
private _isPaused: boolean = false;
private _needsFullRefresh: boolean = false;
@@ -67,7 +68,9 @@ export class RenderService extends Disposable implements IRenderService {
this.register(bufferService.onResize(e => this._fullRefresh()));
this.register(optionsService.onOptionChange(() => this._renderer.onOptionsChanged()));
this.register(charSizeService.onCharSizeChange(() => this.onCharSizeChanged()));
this._charSizeService = charSizeService;
this.register(this._charSizeService.onCharSizeChange(() => this.onCharSizeChanged()));
// No need to register this as renderer is explicitly disposed in RenderService.dispose
this._renderer.onRequestRedraw(e => this.refreshRows(e.start, e.end, true));
@@ -91,6 +94,11 @@ export class RenderService extends Disposable implements IRenderService {
this.refreshRows(0, this._rowCount - 1);
this._needsFullRefresh = false;
}
// Terminal was hidden on open
if (!this._isPaused && !this._charSizeService.hasValidSize) {
this._charSizeService.measure();
}
}
public refreshRows(start: number, end: number, isRedrawOnly: boolean = false): void {