From 736bd53e49aed52418aff2ed61cda514fef650cc Mon Sep 17 00:00:00 2001 From: Bradley Bain Date: Thu, 25 Apr 2019 21:24:07 -0700 Subject: [PATCH] Clear line cache on terminal resize --- src/addons/search/SearchHelper.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/addons/search/SearchHelper.ts b/src/addons/search/SearchHelper.ts index 549a84496a..7db1ed4337 100644 --- a/src/addons/search/SearchHelper.ts +++ b/src/addons/search/SearchHelper.ts @@ -21,6 +21,7 @@ export class SearchHelper implements ISearchHelper { private _linesCache: string[] = null; private _linesCacheTimeoutId = 0; private _cursorMoveListener: IDisposable | undefined; + private _resizeListener: IDisposable | undefined; constructor(private _terminal: ISearchAddonTerminal) { this._destroyLinesCache = this._destroyLinesCache.bind(this); @@ -185,6 +186,7 @@ export class SearchHelper implements ISearchHelper { if (!this._linesCache) { this._linesCache = new Array(this._terminal._core.buffer.length); this._cursorMoveListener = this._terminal.onCursorMove(() => this._destroyLinesCache()); + this._resizeListener = this._terminal.onResize(() => this._destroyLinesCache()); } window.clearTimeout(this._linesCacheTimeoutId); @@ -197,6 +199,10 @@ export class SearchHelper implements ISearchHelper { this._cursorMoveListener.dispose(); this._cursorMoveListener = undefined; } + if (this._resizeListener) { + this._resizeListener.dispose(); + this._resizeListener = undefined; + } if (this._linesCacheTimeoutId) { window.clearTimeout(this._linesCacheTimeoutId); this._linesCacheTimeoutId = 0;