Introduce IRenderDebouncer interface, unifying RenderDebouncer and TimeBasedDebouncer types

This commit is contained in:
Samuel Sampson
2021-08-17 20:50:47 +00:00
parent f1eed44e14
commit f1849cafaf
5 changed files with 12 additions and 8 deletions
+2 -2
View File
@@ -4,7 +4,7 @@
*/
import * as Strings from 'browser/LocalizableStrings';
import { ITerminal } from 'browser/Types';
import { ITerminal, IRenderDebouncer } from 'browser/Types';
import { IBuffer } from 'common/buffer/Types';
import { isMac } from 'common/Platform';
import { TimeBasedDebouncer } from 'browser/TimeBasedDebouncer';
@@ -28,7 +28,7 @@ export class AccessibilityManager extends Disposable {
private _liveRegion: HTMLElement;
private _liveRegionLineCount: number = 0;
private _renderRowsDebouncer: TimeBasedDebouncer;
private _renderRowsDebouncer: IRenderDebouncer;
private _screenDprMonitor: ScreenDprMonitor;
private _topBoundaryFocusListener: (e: FocusEvent) => void;
+2 -2
View File
@@ -3,12 +3,12 @@
* @license MIT
*/
import { IDisposable } from 'common/Types';
import { IRenderDebouncer } from 'browser/Types';
/**
* Debounces calls to render terminal rows using animation frames.
*/
export class RenderDebouncer implements IDisposable {
export class RenderDebouncer implements IRenderDebouncer {
private _rowStart: number | undefined;
private _rowEnd: number | undefined;
private _rowCount: number | undefined;
+2 -2
View File
@@ -5,12 +5,12 @@
const RENDER_DEBOUNCE_THRESHOLD_MS = 1000; // 1 Second
import { IDisposable } from 'common/Types';
import { IRenderDebouncer } from 'browser/Types';
/**
* Debounces calls to update screen readers to update at most once per second.
*/
export class TimeBasedDebouncer implements IDisposable {
export class TimeBasedDebouncer implements IRenderDebouncer {
private _rowStart: number | undefined;
private _rowEnd: number | undefined;
private _rowCount: number | undefined;
+4
View File
@@ -309,3 +309,7 @@ export interface ICharacterJoiner {
id: number;
handler: CharacterJoinerHandler;
}
export interface IRenderDebouncer extends IDisposable {
refresh(rowStart: number | undefined, rowEnd: number | undefined, rowCount: number): void;
}
+2 -2
View File
@@ -9,7 +9,7 @@ import { EventEmitter, IEvent } from 'common/EventEmitter';
import { Disposable } from 'common/Lifecycle';
import { ScreenDprMonitor } from 'browser/ScreenDprMonitor';
import { addDisposableDomListener } from 'browser/Lifecycle';
import { IColorSet } from 'browser/Types';
import { IColorSet, IRenderDebouncer } from 'browser/Types';
import { IOptionsService, IBufferService } from 'common/services/Services';
import { ICharSizeService, IRenderService } from 'browser/services/Services';
@@ -22,7 +22,7 @@ interface ISelectionState {
export class RenderService extends Disposable implements IRenderService {
public serviceBrand: undefined;
private _renderDebouncer: RenderDebouncer;
private _renderDebouncer: IRenderDebouncer;
private _screenDprMonitor: ScreenDprMonitor;
private _isPaused: boolean = false;