@@ -219,10 +219,12 @@ export class WorkbenchContextKeysHandler extends Disposable {
219
219
220
220
this . _register ( this . editorGroupService . onDidChangeEditorPartOptions ( ( ) => this . updateEditorAreaContextKeys ( ) ) ) ;
221
221
222
-
223
222
this . _register ( Event . runAndSubscribe ( onDidRegisterWindow , ( { window, disposables } ) => {
224
- const mutableDisposable = disposables . add ( new MutableDisposable ( ) ) ;
225
- disposables . add ( addDisposableListener ( window , EventType . FOCUS_IN , ( ) => this . updateInputContextKeys ( window . document , mutableDisposable ) , true ) ) ;
223
+ const onFocusDisposables = disposables . add ( new MutableDisposable < DisposableStore > ( ) ) ;
224
+ disposables . add ( addDisposableListener ( window , EventType . FOCUS_IN , ( ) => {
225
+ onFocusDisposables . value = new DisposableStore ( ) ;
226
+ this . updateInputContextKeys ( window . document , onFocusDisposables . value ) ;
227
+ } , true ) ) ;
226
228
} , { window : mainWindow , disposables : this . _store } ) ) ;
227
229
228
230
this . _register ( this . contextService . onDidChangeWorkbenchState ( ( ) => this . updateWorkbenchStateContextKey ( ) ) ) ;
@@ -309,7 +311,7 @@ export class WorkbenchContextKeysHandler extends Disposable {
309
311
this . editorTabsVisibleContext . set ( this . editorGroupService . partOptions . showTabs === 'multiple' ) ;
310
312
}
311
313
312
- private updateInputContextKeys ( ownerDocument : Document , mutableDisposable : MutableDisposable < any > ) : void {
314
+ private updateInputContextKeys ( ownerDocument : Document , disposables : DisposableStore ) : void {
313
315
314
316
function activeElementIsInput ( ) : boolean {
315
317
return ! ! ownerDocument . activeElement && isEditableElement ( ownerDocument . activeElement ) ;
@@ -318,14 +320,8 @@ export class WorkbenchContextKeysHandler extends Disposable {
318
320
const isInputFocused = activeElementIsInput ( ) ;
319
321
this . inputFocusedContext . set ( isInputFocused ) ;
320
322
321
-
322
- const store = new DisposableStore ( ) ;
323
- mutableDisposable . value = store ;
324
-
325
-
326
323
if ( isInputFocused ) {
327
-
328
- const tracker = store . add ( trackFocus ( ownerDocument . activeElement as HTMLElement ) ) ;
324
+ const tracker = disposables . add ( trackFocus ( ownerDocument . activeElement as HTMLElement ) ) ;
329
325
Event . once ( tracker . onDidBlur ) ( ( ) => {
330
326
331
327
// Ensure we are only updating the context key if we are
@@ -341,7 +337,7 @@ export class WorkbenchContextKeysHandler extends Disposable {
341
337
}
342
338
343
339
tracker . dispose ( ) ;
344
- } , undefined , store ) ;
340
+ } , undefined , disposables ) ;
345
341
}
346
342
}
347
343
0 commit comments