@@ -219,10 +219,12 @@ export class WorkbenchContextKeysHandler extends Disposable {
219219
220220 this . _register ( this . editorGroupService . onDidChangeEditorPartOptions ( ( ) => this . updateEditorAreaContextKeys ( ) ) ) ;
221221
222-
223222 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 ) ) ;
226228 } , { window : mainWindow , disposables : this . _store } ) ) ;
227229
228230 this . _register ( this . contextService . onDidChangeWorkbenchState ( ( ) => this . updateWorkbenchStateContextKey ( ) ) ) ;
@@ -309,7 +311,7 @@ export class WorkbenchContextKeysHandler extends Disposable {
309311 this . editorTabsVisibleContext . set ( this . editorGroupService . partOptions . showTabs === 'multiple' ) ;
310312 }
311313
312- private updateInputContextKeys ( ownerDocument : Document , mutableDisposable : MutableDisposable < any > ) : void {
314+ private updateInputContextKeys ( ownerDocument : Document , disposables : DisposableStore ) : void {
313315
314316 function activeElementIsInput ( ) : boolean {
315317 return ! ! ownerDocument . activeElement && isEditableElement ( ownerDocument . activeElement ) ;
@@ -318,14 +320,8 @@ export class WorkbenchContextKeysHandler extends Disposable {
318320 const isInputFocused = activeElementIsInput ( ) ;
319321 this . inputFocusedContext . set ( isInputFocused ) ;
320322
321-
322- const store = new DisposableStore ( ) ;
323- mutableDisposable . value = store ;
324-
325-
326323 if ( isInputFocused ) {
327-
328- const tracker = store . add ( trackFocus ( ownerDocument . activeElement as HTMLElement ) ) ;
324+ const tracker = disposables . add ( trackFocus ( ownerDocument . activeElement as HTMLElement ) ) ;
329325 Event . once ( tracker . onDidBlur ) ( ( ) => {
330326
331327 // Ensure we are only updating the context key if we are
@@ -341,7 +337,7 @@ export class WorkbenchContextKeysHandler extends Disposable {
341337 }
342338
343339 tracker . dispose ( ) ;
344- } , undefined , store ) ;
340+ } , undefined , disposables ) ;
345341 }
346342 }
347343
0 commit comments