From f620b3df490ad36876117d4c6fefe51ea023f5be Mon Sep 17 00:00:00 2001 From: Joao Moreno Date: Wed, 23 Jan 2019 09:18:13 +0100 Subject: [PATCH] fixes #66878 --- src/vs/base/browser/dom.ts | 5 ----- src/vs/base/browser/ui/list/listView.ts | 5 +++-- src/vs/base/browser/ui/tree/abstractTree.ts | 5 +++-- src/vs/base/common/async.ts | 8 ++------ 4 files changed, 8 insertions(+), 15 deletions(-) diff --git a/src/vs/base/browser/dom.ts b/src/vs/base/browser/dom.ts index 868b77ade0e29..2ac95d2b9c67f 100644 --- a/src/vs/base/browser/dom.ts +++ b/src/vs/base/browser/dom.ts @@ -1167,8 +1167,3 @@ export function animate(fn: () => void): IDisposable { let stepDisposable = scheduleAtNextAnimationFrame(step); return toDisposable(() => stepDisposable.dispose()); } - -export function timeout(fn: () => void, millis: number): IDisposable { - const timer = setTimeout(fn, millis); - return toDisposable(() => clearTimeout(timer)); -} \ No newline at end of file diff --git a/src/vs/base/browser/ui/list/listView.ts b/src/vs/base/browser/ui/list/listView.ts index 844e080672f12..153b169432a3f 100644 --- a/src/vs/base/browser/ui/list/listView.ts +++ b/src/vs/base/browser/ui/list/listView.ts @@ -21,6 +21,7 @@ import { memoize } from 'vs/base/common/decorators'; import { Range, IRange } from 'vs/base/common/range'; import { equals, distinct } from 'vs/base/common/arrays'; import { DataTransfers, StaticDND, IDragAndDropData } from 'vs/base/browser/dnd'; +import { disposableTimeout } from 'vs/base/common/async'; function canUseTranslate3d(): boolean { if (browser.isFirefox) { @@ -731,7 +732,7 @@ export class ListView implements ISpliceable, IDisposable { private onDragLeave(): void { this.onDragLeaveTimeout.dispose(); - this.onDragLeaveTimeout = DOM.timeout(() => this.clearDragOverFeedback(), 100); + this.onDragLeaveTimeout = disposableTimeout(() => this.clearDragOverFeedback(), 100); } private onDrop(event: IListDragEvent): void { @@ -777,7 +778,7 @@ export class ListView implements ISpliceable, IDisposable { } this.dragOverAnimationStopDisposable.dispose(); - this.dragOverAnimationStopDisposable = DOM.timeout(() => { + this.dragOverAnimationStopDisposable = disposableTimeout(() => { if (this.dragOverAnimationDisposable) { this.dragOverAnimationDisposable.dispose(); this.dragOverAnimationDisposable = undefined; diff --git a/src/vs/base/browser/ui/tree/abstractTree.ts b/src/vs/base/browser/ui/tree/abstractTree.ts index 1bc2f89ad9b3b..16999aee9d32c 100644 --- a/src/vs/base/browser/ui/tree/abstractTree.ts +++ b/src/vs/base/browser/ui/tree/abstractTree.ts @@ -7,7 +7,7 @@ import 'vs/css!./media/tree'; import { IDisposable, dispose, Disposable, toDisposable } from 'vs/base/common/lifecycle'; import { IListOptions, List, IListStyles, mightProducePrintableCharacter } from 'vs/base/browser/ui/list/listWidget'; import { IListVirtualDelegate, IListRenderer, IListMouseEvent, IListEvent, IListContextMenuEvent, IListDragAndDrop, IListDragOverReaction, IKeyboardNavigationLabelProvider } from 'vs/base/browser/ui/list/list'; -import { append, $, toggleClass, timeout, getDomNodePagePosition, removeClass, addClass } from 'vs/base/browser/dom'; +import { append, $, toggleClass, getDomNodePagePosition, removeClass, addClass } from 'vs/base/browser/dom'; import { Event, Relay, Emitter } from 'vs/base/common/event'; import { StandardKeyboardEvent, IKeyboardEvent } from 'vs/base/browser/keyboardEvent'; import { KeyCode } from 'vs/base/common/keyCodes'; @@ -20,6 +20,7 @@ import { domEvent } from 'vs/base/browser/event'; import { fuzzyScore, FuzzyScore } from 'vs/base/common/filters'; import { getVisibleState, isFilterResult } from 'vs/base/browser/ui/tree/indexTreeModel'; import { localize } from 'vs/nls'; +import { disposableTimeout } from 'vs/base/common/async'; function asTreeDragAndDropData(data: IDragAndDropData): IDragAndDropData { if (data instanceof ElementsDragAndDropData) { @@ -69,7 +70,7 @@ class TreeNodeListDragAndDrop implements IListDragAndDrop< } if (didChangeAutoExpandNode && typeof result !== 'boolean' && result.autoExpand) { - this.autoExpandDisposable = timeout(() => { + this.autoExpandDisposable = disposableTimeout(() => { const model = this.modelProvider(); const ref = model.getNodeLocation(targetNode); diff --git a/src/vs/base/common/async.ts b/src/vs/base/common/async.ts index 9660a6cf966cb..807898c6989f6 100644 --- a/src/vs/base/common/async.ts +++ b/src/vs/base/common/async.ts @@ -6,7 +6,7 @@ import { CancellationToken, CancellationTokenSource } from 'vs/base/common/cancellation'; import * as errors from 'vs/base/common/errors'; import { Emitter, Event } from 'vs/base/common/event'; -import { Disposable, IDisposable } from 'vs/base/common/lifecycle'; +import { Disposable, IDisposable, toDisposable } from 'vs/base/common/lifecycle'; import { URI } from 'vs/base/common/uri'; export function isThenable(obj: any): obj is Promise { @@ -320,11 +320,7 @@ export function timeout(millis: number, token?: CancellationToken): CancelablePr export function disposableTimeout(handler: () => void, timeout = 0): IDisposable { const timer = setTimeout(handler, timeout); - return { - dispose() { - clearTimeout(timer); - } - }; + return toDisposable(() => clearTimeout(timer)); } /**