Skip to content

Commit ed019d3

Browse files
committed
Check plugin modified state & disabled state for quickSwitchDialogs
1 parent b6be321 commit ed019d3

File tree

1 file changed

+13
-3
lines changed

1 file changed

+13
-3
lines changed

Flow.Launcher.Infrastructure/QuickSwitch/QuickSwitch.cs

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)