From 9159fc68e163f902f9993d6c8bf97a39d39cf1e8 Mon Sep 17 00:00:00 2001 From: Daniel Imms <2193314+Tyriar@users.noreply.github.com> Date: Mon, 25 Jul 2022 09:44:54 -0700 Subject: [PATCH] Redraw canvas renderer selection on resize Fixes #1963 --- src/browser/renderer/BaseRenderLayer.ts | 6 +++--- src/browser/renderer/SelectionRenderLayer.ts | 7 +++++-- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/browser/renderer/BaseRenderLayer.ts b/src/browser/renderer/BaseRenderLayer.ts index 0a9b8057..a44253a0 100644 --- a/src/browser/renderer/BaseRenderLayer.ts +++ b/src/browser/renderer/BaseRenderLayer.ts @@ -29,9 +29,9 @@ export abstract class BaseRenderLayer implements IRenderLayer { private _scaledCharLeft: number = 0; private _scaledCharTop: number = 0; - private _selectionStart: [number, number] | undefined; - private _selectionEnd: [number, number] | undefined; - private _columnSelectMode: boolean = false; + protected _selectionStart: [number, number] | undefined; + protected _selectionEnd: [number, number] | undefined; + protected _columnSelectMode: boolean = false; protected _charAtlas: BaseCharAtlas | undefined; diff --git a/src/browser/renderer/SelectionRenderLayer.ts b/src/browser/renderer/SelectionRenderLayer.ts index ce4fe071..f8bdc234 100644 --- a/src/browser/renderer/SelectionRenderLayer.ts +++ b/src/browser/renderer/SelectionRenderLayer.ts @@ -42,8 +42,11 @@ export class SelectionRenderLayer extends BaseRenderLayer { public resize(dim: IRenderDimensions): void { super.resize(dim); - // Resizing the canvas discards the contents of the canvas so clear state - this._clearState(); + // On resize use the base render layer's cached selection values since resize clears _state + // inside reset. + if (this._selectionStart && this._selectionEnd) { + this.onSelectionChanged(this._selectionStart, this._selectionEnd, this._columnSelectMode); + } } public reset(): void {