Introduce IRenderDebouncer interface, unifying RenderDebouncer and TimeBasedDebouncer types
This commit is contained in:
@@ -4,7 +4,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import * as Strings from 'browser/LocalizableStrings';
|
import * as Strings from 'browser/LocalizableStrings';
|
||||||
import { ITerminal } from 'browser/Types';
|
import { ITerminal, IRenderDebouncer } from 'browser/Types';
|
||||||
import { IBuffer } from 'common/buffer/Types';
|
import { IBuffer } from 'common/buffer/Types';
|
||||||
import { isMac } from 'common/Platform';
|
import { isMac } from 'common/Platform';
|
||||||
import { TimeBasedDebouncer } from 'browser/TimeBasedDebouncer';
|
import { TimeBasedDebouncer } from 'browser/TimeBasedDebouncer';
|
||||||
@@ -28,7 +28,7 @@ export class AccessibilityManager extends Disposable {
|
|||||||
private _liveRegion: HTMLElement;
|
private _liveRegion: HTMLElement;
|
||||||
private _liveRegionLineCount: number = 0;
|
private _liveRegionLineCount: number = 0;
|
||||||
|
|
||||||
private _renderRowsDebouncer: TimeBasedDebouncer;
|
private _renderRowsDebouncer: IRenderDebouncer;
|
||||||
private _screenDprMonitor: ScreenDprMonitor;
|
private _screenDprMonitor: ScreenDprMonitor;
|
||||||
|
|
||||||
private _topBoundaryFocusListener: (e: FocusEvent) => void;
|
private _topBoundaryFocusListener: (e: FocusEvent) => void;
|
||||||
|
|||||||
@@ -3,12 +3,12 @@
|
|||||||
* @license MIT
|
* @license MIT
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { IDisposable } from 'common/Types';
|
import { IRenderDebouncer } from 'browser/Types';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Debounces calls to render terminal rows using animation frames.
|
* Debounces calls to render terminal rows using animation frames.
|
||||||
*/
|
*/
|
||||||
export class RenderDebouncer implements IDisposable {
|
export class RenderDebouncer implements IRenderDebouncer {
|
||||||
private _rowStart: number | undefined;
|
private _rowStart: number | undefined;
|
||||||
private _rowEnd: number | undefined;
|
private _rowEnd: number | undefined;
|
||||||
private _rowCount: number | undefined;
|
private _rowCount: number | undefined;
|
||||||
|
|||||||
@@ -5,12 +5,12 @@
|
|||||||
|
|
||||||
const RENDER_DEBOUNCE_THRESHOLD_MS = 1000; // 1 Second
|
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.
|
* 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 _rowStart: number | undefined;
|
||||||
private _rowEnd: number | undefined;
|
private _rowEnd: number | undefined;
|
||||||
private _rowCount: number | undefined;
|
private _rowCount: number | undefined;
|
||||||
|
|||||||
Vendored
+4
@@ -309,3 +309,7 @@ export interface ICharacterJoiner {
|
|||||||
id: number;
|
id: number;
|
||||||
handler: CharacterJoinerHandler;
|
handler: CharacterJoinerHandler;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export interface IRenderDebouncer extends IDisposable {
|
||||||
|
refresh(rowStart: number | undefined, rowEnd: number | undefined, rowCount: number): void;
|
||||||
|
}
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ import { EventEmitter, IEvent } from 'common/EventEmitter';
|
|||||||
import { Disposable } from 'common/Lifecycle';
|
import { Disposable } from 'common/Lifecycle';
|
||||||
import { ScreenDprMonitor } from 'browser/ScreenDprMonitor';
|
import { ScreenDprMonitor } from 'browser/ScreenDprMonitor';
|
||||||
import { addDisposableDomListener } from 'browser/Lifecycle';
|
import { addDisposableDomListener } from 'browser/Lifecycle';
|
||||||
import { IColorSet } from 'browser/Types';
|
import { IColorSet, IRenderDebouncer } from 'browser/Types';
|
||||||
import { IOptionsService, IBufferService } from 'common/services/Services';
|
import { IOptionsService, IBufferService } from 'common/services/Services';
|
||||||
import { ICharSizeService, IRenderService } from 'browser/services/Services';
|
import { ICharSizeService, IRenderService } from 'browser/services/Services';
|
||||||
|
|
||||||
@@ -22,7 +22,7 @@ interface ISelectionState {
|
|||||||
export class RenderService extends Disposable implements IRenderService {
|
export class RenderService extends Disposable implements IRenderService {
|
||||||
public serviceBrand: undefined;
|
public serviceBrand: undefined;
|
||||||
|
|
||||||
private _renderDebouncer: RenderDebouncer;
|
private _renderDebouncer: IRenderDebouncer;
|
||||||
private _screenDprMonitor: ScreenDprMonitor;
|
private _screenDprMonitor: ScreenDprMonitor;
|
||||||
|
|
||||||
private _isPaused: boolean = false;
|
private _isPaused: boolean = false;
|
||||||
|
|||||||
Reference in New Issue
Block a user