From 4bb81b60dffb63ac91baef556ba99350a489932e Mon Sep 17 00:00:00 2001 From: Matt Bierner Date: Fri, 30 Nov 2018 17:25:49 -0800 Subject: [PATCH] Fix event typings These typing errors were hidden by us previously using `any` --- src/vs/base/browser/dnd.ts | 2 +- src/vs/base/browser/dom.ts | 1 + .../parts/preferences/browser/settingsTree.ts | 8 ++++---- .../electron-browser/terminalInstance.ts | 16 ++++++++-------- 4 files changed, 14 insertions(+), 13 deletions(-) diff --git a/src/vs/base/browser/dnd.ts b/src/vs/base/browser/dnd.ts index cc72a3d90c0..a51f6e64b8e 100644 --- a/src/vs/base/browser/dnd.ts +++ b/src/vs/base/browser/dnd.ts @@ -27,7 +27,7 @@ export class DelayedDragHandler extends Disposable { })); ['dragleave', 'drop', 'dragend'].forEach(type => { - this._register(addDisposableListener(container, type, () => { + this._register(addDisposableListener(container, type as 'dragleave' | 'drop' | 'dragend', () => { this.clearDragTimeout(); })); }); diff --git a/src/vs/base/browser/dom.ts b/src/vs/base/browser/dom.ts index 08b3ed2b635..c3aeadcf72d 100644 --- a/src/vs/base/browser/dom.ts +++ b/src/vs/base/browser/dom.ts @@ -225,6 +225,7 @@ class DomListener implements IDisposable { this._handler = null!; } } + export function addDisposableListener(node: Element | Window | Document, type: K, handler: (event: GlobalEventHandlersEventMap[K]) => void, useCapture?: boolean): IDisposable; export function addDisposableListener(node: Element | Window | Document, type: string, handler: (event: any) => void, useCapture?: boolean): IDisposable; export function addDisposableListener(node: Element | Window | Document, type: string, handler: (event: any) => void, useCapture?: boolean): IDisposable { diff --git a/src/vs/workbench/parts/preferences/browser/settingsTree.ts b/src/vs/workbench/parts/preferences/browser/settingsTree.ts index 3c136ead81d..479744d22e3 100644 --- a/src/vs/workbench/parts/preferences/browser/settingsTree.ts +++ b/src/vs/workbench/parts/preferences/browser/settingsTree.ts @@ -642,10 +642,10 @@ export class SettingsRenderer implements ITreeRenderer { }; // Prevent clicks from being handled by list - toDispose.push(DOM.addDisposableListener(controlElement, 'mousedown', (e: IMouseEvent) => e.stopPropagation())); + toDispose.push(DOM.addDisposableListener(controlElement, 'mousedown', e => e.stopPropagation())); - toDispose.push(DOM.addDisposableListener(titleElement, DOM.EventType.MOUSE_ENTER, (e: IMouseEvent) => container.classList.add('mouseover'))); - toDispose.push(DOM.addDisposableListener(titleElement, DOM.EventType.MOUSE_LEAVE, (e: IMouseEvent) => container.classList.remove('mouseover'))); + toDispose.push(DOM.addDisposableListener(titleElement, DOM.EventType.MOUSE_ENTER, e => container.classList.add('mouseover'))); + toDispose.push(DOM.addDisposableListener(titleElement, DOM.EventType.MOUSE_LEAVE, e => container.classList.remove('mouseover'))); toDispose.push(DOM.addStandardDisposableListener(valueElement, 'keydown', (e: StandardKeyboardEvent) => { if (e.keyCode === KeyCode.Escape) { @@ -822,7 +822,7 @@ export class SettingsRenderer implements ITreeRenderer { this.addSettingElementFocusHandler(template); // Prevent clicks from being handled by list - toDispose.push(DOM.addDisposableListener(controlElement, 'mousedown', (e: IMouseEvent) => e.stopPropagation())); + toDispose.push(DOM.addDisposableListener(controlElement, 'mousedown', e => e.stopPropagation())); toDispose.push(DOM.addStandardDisposableListener(controlElement, 'keydown', (e: StandardKeyboardEvent) => { if (e.keyCode === KeyCode.Escape) { diff --git a/src/vs/workbench/parts/terminal/electron-browser/terminalInstance.ts b/src/vs/workbench/parts/terminal/electron-browser/terminalInstance.ts index fedf68dbadd..f440c2735d2 100644 --- a/src/vs/workbench/parts/terminal/electron-browser/terminalInstance.ts +++ b/src/vs/workbench/parts/terminal/electron-browser/terminalInstance.ts @@ -402,10 +402,10 @@ export class TerminalInstance implements ITerminalInstance { return undefined; }); - this._disposables.push(dom.addDisposableListener(this._xterm.element, 'mousedown', (event: KeyboardEvent) => { + this._disposables.push(dom.addDisposableListener(this._xterm.element, 'mousedown', () => { // We need to listen to the mouseup event on the document since the user may release // the mouse button anywhere outside of _xterm.element. - const listener = dom.addDisposableListener(document, 'mouseup', (event: KeyboardEvent) => { + const listener = dom.addDisposableListener(document, 'mouseup', () => { // Delay with a setTimeout to allow the mouseup to propagate through the DOM // before evaluating the new selection state. setTimeout(() => this._refreshSelectionContextKey(), 0); @@ -414,7 +414,7 @@ export class TerminalInstance implements ITerminalInstance { })); // xterm.js currently drops selection on keyup as we need to handle this case. - this._disposables.push(dom.addDisposableListener(this._xterm.element, 'keyup', (event: KeyboardEvent) => { + this._disposables.push(dom.addDisposableListener(this._xterm.element, 'keyup', () => { // Wait until keyup has propagated through the DOM before evaluating // the new selection state. setTimeout(() => this._refreshSelectionContextKey(), 0); @@ -424,7 +424,7 @@ export class TerminalInstance implements ITerminalInstance { const focusTrap: HTMLElement = document.createElement('div'); focusTrap.setAttribute('tabindex', '0'); dom.addClass(focusTrap, 'focus-trap'); - this._disposables.push(dom.addDisposableListener(focusTrap, 'focus', (event: FocusEvent) => { + this._disposables.push(dom.addDisposableListener(focusTrap, 'focus', () => { let currentElement = focusTrap; while (!dom.hasClass(currentElement, 'part')) { currentElement = currentElement.parentElement; @@ -434,18 +434,18 @@ export class TerminalInstance implements ITerminalInstance { })); xtermHelper.insertBefore(focusTrap, this._xterm.textarea); - this._disposables.push(dom.addDisposableListener(this._xterm.textarea, 'focus', (event: KeyboardEvent) => { + this._disposables.push(dom.addDisposableListener(this._xterm.textarea, 'focus', () => { this._terminalFocusContextKey.set(true); this._onFocused.fire(this); })); - this._disposables.push(dom.addDisposableListener(this._xterm.textarea, 'blur', (event: KeyboardEvent) => { + this._disposables.push(dom.addDisposableListener(this._xterm.textarea, 'blur', () => { this._terminalFocusContextKey.reset(); this._refreshSelectionContextKey(); })); - this._disposables.push(dom.addDisposableListener(this._xterm.element, 'focus', (event: KeyboardEvent) => { + this._disposables.push(dom.addDisposableListener(this._xterm.element, 'focus', () => { this._terminalFocusContextKey.set(true); })); - this._disposables.push(dom.addDisposableListener(this._xterm.element, 'blur', (event: KeyboardEvent) => { + this._disposables.push(dom.addDisposableListener(this._xterm.element, 'blur', () => { this._terminalFocusContextKey.reset(); this._refreshSelectionContextKey(); }));