Expose a documentOverride setting
This lets the embedder choose which Document object to use for creating elements, adding event listeners, etc. The reason this exists is because when working with multiple windows it can be convenient to create all elements under the primary window to make instanceof usage consistent. See microsoft/vscode#195595
This commit is contained in:
@@ -398,6 +398,9 @@ export class Terminal extends CoreTerminal implements ITerminal {
|
||||
}
|
||||
|
||||
this._document = parent.ownerDocument!;
|
||||
if (this.options.documentOverride && this.options.documentOverride instanceof Document) {
|
||||
this._document = this.optionsService.rawOptions.documentOverride as Document;
|
||||
}
|
||||
|
||||
// Create main element container
|
||||
this.element = this._document.createElement('div');
|
||||
|
||||
@@ -18,6 +18,7 @@ export const DEFAULT_OPTIONS: Readonly<Required<ITerminalOptions>> = {
|
||||
cursorInactiveStyle: 'outline',
|
||||
customGlyphs: true,
|
||||
drawBoldTextInBrightColors: true,
|
||||
documentOverride: null,
|
||||
fastScrollModifier: 'alt',
|
||||
fastScrollSensitivity: 5,
|
||||
fontFamily: 'courier-new, courier, monospace',
|
||||
|
||||
@@ -217,6 +217,7 @@ export interface ITerminalOptions {
|
||||
cursorInactiveStyle?: CursorInactiveStyle;
|
||||
customGlyphs?: boolean;
|
||||
disableStdin?: boolean;
|
||||
documentOverride?: any | null;
|
||||
drawBoldTextInBrightColors?: boolean;
|
||||
fastScrollModifier?: 'none' | 'alt' | 'ctrl' | 'shift';
|
||||
fastScrollSensitivity?: number;
|
||||
|
||||
Reference in New Issue
Block a user