- Add onBell event listener to allow embeders to hook into it
This commit is contained in:
Bruno Ribeiro
2021-04-03 16:34:00 +01:00
parent 0421f6ebcf
commit 7b7b7a36db
8 changed files with 30 additions and 0 deletions
+6
View File
@@ -131,6 +131,12 @@ describe('Terminal', () => {
});
term.write('\x1b]2;title\x07');
});
it('should fire the onBell event', (done) => {
term.onBell(e => {
done();
});
term.write('\a');
});
});
describe('attachCustomKeyEventHandler', () => {
+4
View File
@@ -111,6 +111,8 @@ export class Terminal extends CoreTerminal implements ITerminal {
public get onSelectionChange(): IEvent<void> { return this._onSelectionChange.event; }
private _onTitleChange = new EventEmitter<string>();
public get onTitleChange(): IEvent<string> { return this._onTitleChange.event; }
private _onBell = new EventEmitter<void>();
public get onBell (): IEvent<void> { return this._onBell.event; }
private _onFocus = new EventEmitter<void>();
public get onFocus(): IEvent<void> { return this._onFocus.event; }
@@ -1141,6 +1143,8 @@ export class Terminal extends CoreTerminal implements ITerminal {
this._soundService!.playBellSound();
}
this._onBell.fire();
// if (this._visualBell()) {
// this.element.classList.add('visual-bell-active');
// clearTimeout(this._visualBellTimer);
+1
View File
@@ -37,6 +37,7 @@ export class MockTerminal implements ITerminal {
public onData!: IEvent<string>;
public onBinary!: IEvent<string>;
public onTitleChange!: IEvent<string>;
public onBell!: IEvent<void>;
public onScroll!: IEvent<number>;
public onKey!: IEvent<{ key: string, domEvent: KeyboardEvent }>;
public onRender!: IEvent<{ start: number, end: number }>;
+1
View File
@@ -47,6 +47,7 @@ export interface IPublicTerminal extends IDisposable {
onRender: IEvent<{ start: number, end: number }>;
onResize: IEvent<{ cols: number, rows: number }>;
onTitleChange: IEvent<string>;
onBell: IEvent<void>;
blur(): void;
focus(): void;
resize(columns: number, rows: number): void;
+1
View File
@@ -38,6 +38,7 @@ export class Terminal implements ITerminalApi {
public get onData(): IEvent<string> { return this._core.onData; }
public get onBinary(): IEvent<string> { return this._core.onBinary; }
public get onTitleChange(): IEvent<string> { return this._core.onTitleChange; }
public get onBell(): IEvent<void> { return this._core.onBell; }
public get onScroll(): IEvent<number> { return this._core.onScroll; }
public get onKey(): IEvent<{ key: string, domEvent: KeyboardEvent }> { return this._core.onKey; }
public get onRender(): IEvent<{ start: number, end: number }> { return this._core.onRender; }
+1
View File
@@ -357,6 +357,7 @@ export interface IAnsiColorChangeEvent {
*/
export interface IInputHandler {
onTitleChange: IEvent<string>;
onRequestBell: IEvent<void>;
parse(data: string | Uint8Array, promiseResult?: boolean): void | Promise<boolean>;
print(data: Uint32Array, start: number, end: number): void;