Skip to content

Commit ce1d0bf

Browse files
committed
Use MutableDisposable over plain IDisposable
1 parent c03e6fa commit ce1d0bf

File tree

1 file changed

+7
-9
lines changed

1 file changed

+7
-9
lines changed

src/vs/editor/contrib/suggest/browser/suggestWidget.ts

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import { List } from 'vs/base/browser/ui/list/listWidget';
1111
import { CancelablePromise, createCancelablePromise, disposableTimeout, TimeoutTimer } from 'vs/base/common/async';
1212
import { onUnexpectedError } from 'vs/base/common/errors';
1313
import { Emitter, Event, PauseableEmitter } from 'vs/base/common/event';
14-
import { DisposableStore, IDisposable } from 'vs/base/common/lifecycle';
14+
import { DisposableStore, IDisposable, MutableDisposable } from 'vs/base/common/lifecycle';
1515
import { clamp } from 'vs/base/common/numbers';
1616
import * as strings from 'vs/base/common/strings';
1717
import 'vs/css!./media/suggest';
@@ -104,8 +104,8 @@ export class SuggestWidget implements IDisposable {
104104
private _state: State = State.Hidden;
105105
private _isAuto: boolean = false;
106106
private _loadingTimeout?: IDisposable;
107-
private _pendingLayout?: IDisposable;
108-
private _pendingShowDetails?: IDisposable;
107+
private _pendingLayout = new MutableDisposable();
108+
private _pendingShowDetails = new MutableDisposable();
109109
private _currentSuggestionDetails?: CancelablePromise<void>;
110110
private _focusedItem?: CompletionItem;
111111
private _ignoreFocusEvents: boolean = false;
@@ -561,9 +561,8 @@ export class SuggestWidget implements IDisposable {
561561
this._onDidSelect.resume();
562562
}
563563

564-
this._pendingLayout?.dispose();
565-
this._pendingLayout = dom.runAtThisOrScheduleAtNextAnimationFrame(() => {
566-
this._pendingLayout = undefined;
564+
this._pendingLayout.value = dom.runAtThisOrScheduleAtNextAnimationFrame(() => {
565+
this._pendingLayout.clear();
567566
this._layout(this.element.size);
568567
// Reset focus border
569568
this._details.widget.domNode.classList.remove('focused');
@@ -698,9 +697,8 @@ export class SuggestWidget implements IDisposable {
698697
}
699698

700699
showDetails(loading: boolean): void {
701-
this._pendingShowDetails?.dispose();
702-
this._pendingShowDetails = dom.runAtThisOrScheduleAtNextAnimationFrame(() => {
703-
this._pendingShowDetails = undefined;
700+
this._pendingShowDetails.value = dom.runAtThisOrScheduleAtNextAnimationFrame(() => {
701+
this._pendingShowDetails.clear();
704702
this._details.show();
705703
if (loading) {
706704
this._details.widget.renderLoading();

0 commit comments

Comments
 (0)