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 {