@@ -58,6 +58,10 @@ public static class QuickSwitch
5858
5959 private static readonly Settings _settings = Ioc . Default . GetRequiredService < Settings > ( ) ;
6060
61+ // We should not initialize API in static constructor because it will create another API instance
62+ private static IPublicAPI api = null ;
63+ private static IPublicAPI API => api ??= Ioc . Default . GetRequiredService < IPublicAPI > ( ) ;
64+
6165 private static HWND _mainWindowHandle = HWND . Null ;
6266
6367 private static readonly Dictionary < QuickSwitchExplorerPair , IQuickSwitchExplorerWindow > _quickSwitchExplorers = new ( ) ;
@@ -436,7 +440,8 @@ uint dwmsEventTime
436440 var dialogWindowChanged = false ;
437441 foreach ( var dialog in _quickSwitchDialogs . Keys )
438442 {
439- if ( dialog . Metadata . Disabled ) continue ;
443+ if ( API . PluginModified ( dialog . Metadata . ID ) || // Plugin is modified
444+ dialog . Metadata . Disabled ) continue ; // Plugin is disabled
440445
441446 IQuickSwitchDialogWindow dialogWindow ;
442447 var existingDialogWindow = _quickSwitchDialogs [ dialog ] ;
@@ -715,8 +720,12 @@ private static IQuickSwitchDialogWindow GetDialogWindow(HWND hwnd)
715720 }
716721
717722 // Then check all dialog windows
718- foreach ( var dialogWindow in _quickSwitchDialogs . Values )
723+ foreach ( var dialog in _quickSwitchDialogs . Keys )
719724 {
725+ if ( API . PluginModified ( dialog . Metadata . ID ) || // Plugin is modified
726+ dialog . Metadata . Disabled ) continue ; // Plugin is disabled
727+
728+ var dialogWindow = _quickSwitchDialogs [ dialog ] ;
720729 if ( dialogWindow . Handle == hwnd )
721730 {
722731 return dialogWindow ;
@@ -726,7 +735,8 @@ private static IQuickSwitchDialogWindow GetDialogWindow(HWND hwnd)
726735 // Finally search for the dialog window again
727736 foreach ( var dialog in _quickSwitchDialogs . Keys )
728737 {
729- if ( dialog . Metadata . Disabled ) continue ;
738+ if ( API . PluginModified ( dialog . Metadata . ID ) || // Plugin is modified
739+ dialog . Metadata . Disabled ) continue ; // Plugin is disabled
730740
731741 IQuickSwitchDialogWindow dialogWindow ;
732742 var existingDialogWindow = _quickSwitchDialogs [ dialog ] ;
0 commit comments