mirror of
https://github.com/microsoft/vscode.git
synced 2026-04-22 09:38:38 +01:00
Add dom events to TextAreaWrapper
This commit is contained in:
@@ -149,6 +149,24 @@ export function addDisposableNonBubblingPointerOutListener(node: Element, handle
|
||||
});
|
||||
}
|
||||
|
||||
export function createEventEmitter<K extends keyof HTMLElementEventMap>(target: HTMLElement, type: K, options?: boolean | AddEventListenerOptions): Emitter<HTMLElementEventMap[K]> {
|
||||
let domListener: DomListener | null = null;
|
||||
const handler = (e: HTMLElementEventMap[K]) => result.fire(e);
|
||||
const onFirstListenerAdd = () => {
|
||||
if (!domListener) {
|
||||
domListener = new DomListener(target, type, handler, options);
|
||||
}
|
||||
};
|
||||
const onLastListenerRemove = () => {
|
||||
if (domListener) {
|
||||
domListener.dispose();
|
||||
domListener = null;
|
||||
}
|
||||
};
|
||||
const result = new Emitter<HTMLElementEventMap[K]>({ onFirstListenerAdd, onLastListenerRemove });
|
||||
return result;
|
||||
}
|
||||
|
||||
interface IRequestAnimationFrame {
|
||||
(callback: (time: number) => void): number;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user