UNPKG

xterm

Version:

Full xterm terminal, in your browser

54 lines (44 loc) 1.15 kB
/** * Copyright (c) 2019 The xterm.js authors. All rights reserved. * @license MIT */ import { IBufferService, IDirtyRowService } from 'common/services/Services'; export class DirtyRowService implements IDirtyRowService { serviceBrand: any; private _start!: number; private _end!: number; public get start(): number { return this._start; } public get end(): number { return this._end; } constructor( @IBufferService private readonly _bufferService: IBufferService ) { this.clearRange(); } public clearRange(): void { this._start = this._bufferService.buffer.y; this._end = this._bufferService.buffer.y; } public markDirty(y: number): void { if (y < this._start) { this._start = y; } else if (y > this._end) { this._end = y; } } public markRangeDirty(y1: number, y2: number): void { if (y1 > y2) { const temp = y1; y1 = y2; y2 = temp; } if (y1 < this._start) { this._start = y1; } if (y2 > this._end) { this._end = y2; } } public markAllDirty(): void { this.markRangeDirty(0, this._bufferService.rows - 1); } }