Replace EventEmitter usage in BufferSet

This commit is contained in:
Daniel Imms
2019-04-02 11:35:20 -07:00
parent f8fb4da9f4
commit 60c2b20d68
3 changed files with 14 additions and 9 deletions
+9 -6
View File
@@ -3,25 +3,28 @@
* @license MIT
*/
import { ITerminal, IBufferSet } from './Types';
import { ITerminal, IBufferSet, IBuffer } from './Types';
import { Buffer } from './Buffer';
import { EventEmitter } from './common/EventEmitter';
import { EventEmitter2, IEvent } from '../lib/common/EventEmitter2';
/**
* The BufferSet represents the set of two buffers used by xterm terminals (normal and alt) and
* provides also utilities for working with them.
*/
export class BufferSet extends EventEmitter implements IBufferSet {
export class BufferSet implements IBufferSet {
private _normal: Buffer;
private _alt: Buffer;
private _activeBuffer: Buffer;
private _onBufferActivate = new EventEmitter2<{activeBuffer: IBuffer, inactiveBuffer: IBuffer}>();
public get onBufferActivate(): IEvent<{activeBuffer: IBuffer, inactiveBuffer: IBuffer}> { return this._onBufferActivate.event; }
/**
* Create a new BufferSet for the given terminal.
* @param _terminal - The terminal the BufferSet will belong to
*/
constructor(private _terminal: ITerminal) {
super();
this._normal = new Buffer(this._terminal, true);
this._normal.fillViewportRows();
@@ -68,7 +71,7 @@ export class BufferSet extends EventEmitter implements IBufferSet {
// when activated.
this._alt.clear();
this._activeBuffer = this._normal;
this.emit('activate', {
this._onBufferActivate.fire({
activeBuffer: this._normal,
inactiveBuffer: this._alt
});
@@ -87,7 +90,7 @@ export class BufferSet extends EventEmitter implements IBufferSet {
this._alt.x = this._normal.x;
this._alt.y = this._normal.y;
this._activeBuffer = this._alt;
this.emit('activate', {
this._onBufferActivate.fire({
activeBuffer: this._alt,
inactiveBuffer: this._normal
});