Skip to content

Commit

Permalink
Merge pull request #4844 from Tyriar/doc_override
Browse files Browse the repository at this point in the history
Expose a documentOverride setting
  • Loading branch information
Tyriar authored Oct 13, 2023
2 parents 34017f3 + 41c6228 commit 4245283
Show file tree
Hide file tree
Showing 4 changed files with 16 additions and 0 deletions.
3 changes: 3 additions & 0 deletions src/browser/Terminal.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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');
Expand Down
1 change: 1 addition & 0 deletions src/common/services/OptionsService.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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',
Expand Down
1 change: 1 addition & 0 deletions src/common/services/Services.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
11 changes: 11 additions & 0 deletions typings/xterm.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,17 @@ declare module 'xterm' {
*/
disableStdin?: boolean;

/**
* A {@link Document} to use instead of the one that xterm.js was attached
* to. The purpose of this is to improve support in multi-window
* applications where HTML elements may be references across multiple
* windows which can cause problems with `instanceof`.
*
* The type is `any` because using `Document` can cause TS to have
* performance/compiler problems.
*/
documentOverride?: any | null;

/**
* Whether to draw bold text in bright colors. The default is true.
*/
Expand Down

0 comments on commit 4245283

Please sign in to comment.