Clear state when resizing as canvases get cleared

This commit is contained in:
Daniel Imms
2017-09-02 21:13:44 -07:00
parent 7973b26e7a
commit 8427f7490d
5 changed files with 27 additions and 0 deletions
+2
View File
@@ -15,6 +15,8 @@ export class BackgroundRenderLayer extends BaseRenderLayer {
public resize(terminal: ITerminal, canvasWidth: number, canvasHeight: number, charSizeChanged: boolean): void {
super.resize(terminal, canvasWidth, canvasHeight, charSizeChanged);
// Resizing the canvas discards the contents of the canvas so clear state
this._state.clear();
this._state.resize(terminal.cols, terminal.rows);
}
+12
View File
@@ -43,6 +43,18 @@ export class CursorRenderLayer extends BaseRenderLayer {
// TODO: Consider initial options? Maybe onOptionsChanged should be called at the end of open?
}
public resize(terminal: ITerminal, canvasWidth: number, canvasHeight: number, charSizeChanged: boolean): void {
super.resize(terminal, canvasWidth, canvasHeight, charSizeChanged);
// Resizing the canvas discards the contents of the canvas so clear state
this._state = {
x: null,
y: null,
isFocused: null,
style: null,
width: null,
};
}
public reset(terminal: ITerminal): void {
this._clearCursor();
if (this._cursorBlinkStateManager) {
+2
View File
@@ -16,6 +16,8 @@ export class ForegroundRenderLayer extends BaseRenderLayer {
public resize(terminal: ITerminal, canvasWidth: number, canvasHeight: number, charSizeChanged: boolean): void {
super.resize(terminal, canvasWidth, canvasHeight, charSizeChanged);
// Resizing the canvas discards the contents of the canvas so clear state
this._state.clear();
this._state.resize(terminal.cols, terminal.rows);
}
+9
View File
@@ -16,6 +16,15 @@ export class SelectionRenderLayer extends BaseRenderLayer {
};
}
public resize(terminal: ITerminal, canvasWidth: number, canvasHeight: number, charSizeChanged: boolean): void {
super.resize(terminal, canvasWidth, canvasHeight, charSizeChanged);
// Resizing the canvas discards the contents of the canvas so clear state
this._state = {
start: null,
end: null
};
}
public reset(terminal: ITerminal): void {
if (this._state.start && this._state.end) {
this._state = {
+2
View File
@@ -5,6 +5,7 @@
import { ITerminal, IBuffer, IBufferSet, IBrowser, ICharMeasure, ISelectionManager, ITerminalOptions, IListenerType, IInputHandlingTerminal, IViewport, ICircularList, ICompositionHelper } from '../Interfaces';
import { LineData } from '../Types';
import * as Browser from './Browser';
import { IColorSet } from '../renderer/Interfaces';
export class MockTerminal implements ITerminal {
isFocused: boolean;
@@ -180,6 +181,7 @@ export class MockInputHandlingTerminal implements IInputHandlingTerminal {
}
export class MockBuffer implements IBuffer {
isCursorInViewport: boolean;
lines: ICircularList<[number, string, number][]>;
ydisp: number;
ybase: number;