@@ -11,7 +11,7 @@ import { List } from 'vs/base/browser/ui/list/listWidget';
11
11
import { CancelablePromise , createCancelablePromise , disposableTimeout , TimeoutTimer } from 'vs/base/common/async' ;
12
12
import { onUnexpectedError } from 'vs/base/common/errors' ;
13
13
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' ;
15
15
import { clamp } from 'vs/base/common/numbers' ;
16
16
import * as strings from 'vs/base/common/strings' ;
17
17
import 'vs/css!./media/suggest' ;
@@ -104,8 +104,8 @@ export class SuggestWidget implements IDisposable {
104
104
private _state : State = State . Hidden ;
105
105
private _isAuto : boolean = false ;
106
106
private _loadingTimeout ?: IDisposable ;
107
- private _pendingLayout ?: IDisposable ;
108
- private _pendingShowDetails ?: IDisposable ;
107
+ private _pendingLayout = new MutableDisposable ( ) ;
108
+ private _pendingShowDetails = new MutableDisposable ( ) ;
109
109
private _currentSuggestionDetails ?: CancelablePromise < void > ;
110
110
private _focusedItem ?: CompletionItem ;
111
111
private _ignoreFocusEvents : boolean = false ;
@@ -561,9 +561,8 @@ export class SuggestWidget implements IDisposable {
561
561
this . _onDidSelect . resume ( ) ;
562
562
}
563
563
564
- this . _pendingLayout ?. dispose ( ) ;
565
- this . _pendingLayout = dom . runAtThisOrScheduleAtNextAnimationFrame ( ( ) => {
566
- this . _pendingLayout = undefined ;
564
+ this . _pendingLayout . value = dom . runAtThisOrScheduleAtNextAnimationFrame ( ( ) => {
565
+ this . _pendingLayout . clear ( ) ;
567
566
this . _layout ( this . element . size ) ;
568
567
// Reset focus border
569
568
this . _details . widget . domNode . classList . remove ( 'focused' ) ;
@@ -698,9 +697,8 @@ export class SuggestWidget implements IDisposable {
698
697
}
699
698
700
699
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 ( ) ;
704
702
this . _details . show ( ) ;
705
703
if ( loading ) {
706
704
this . _details . widget . renderLoading ( ) ;
0 commit comments