Introduce removeElementFromParent helper

This commit is contained in:
Daniel Imms
2020-06-04 07:20:59 -07:00
parent fb25be3ecd
commit 15f1759580
4 changed files with 17 additions and 9 deletions
+2 -1
View File
@@ -16,6 +16,7 @@ import { CellData } from 'common/buffer/CellData';
import { IBufferService, IOptionsService } from 'common/services/Services';
import { throwIfFalsy } from 'browser/renderer/RendererUtils';
import { channels, color, rgba } from 'browser/Color';
import { removeElementFromParent } from 'browser/Dom';
export abstract class BaseRenderLayer implements IRenderLayer {
private _canvas: HTMLCanvasElement;
@@ -60,7 +61,7 @@ export abstract class BaseRenderLayer implements IRenderLayer {
}
public dispose(): void {
this._canvas.parentElement?.removeChild(this._canvas);
removeElementFromParent(this._canvas);
this._charAtlas?.dispose();
}
+2 -4
View File
@@ -12,6 +12,7 @@ import { ICharSizeService } from 'browser/services/Services';
import { IOptionsService, IBufferService } from 'common/services/Services';
import { EventEmitter, IEvent } from 'common/EventEmitter';
import { color } from 'browser/Color';
import { removeElementFromParent } from 'browser/Dom';
const TERMINAL_CLASS_PREFIX = 'xterm-dom-renderer-owner-';
const ROW_CONTAINER_CLASS = 'xterm-rows';
@@ -98,10 +99,7 @@ export class DomRenderer extends Disposable implements IRenderer {
// Outside influences such as React unmounts may manipulate the DOM before our disposal.
// https://github.com/xtermjs/xterm.js/issues/2960
this._rowContainer.parentElement?.removeChild(this._rowContainer);
this._selectionContainer.parentElement?.removeChild(this._selectionContainer);
this._themeStyleElement.parentElement?.removeChild(this._themeStyleElement);
this._dimensionsStyleElement.parentElement?.removeChild(this._dimensionsStyleElement);
removeElementFromParent(this._rowContainer, this._selectionContainer, this._themeStyleElement, this._dimensionsStyleElement);
super.dispose();
}