diff --git a/Plugins/Flow.Launcher.Plugin.Program/Main.cs b/Plugins/Flow.Launcher.Plugin.Program/Main.cs index c212bf8f4..feeb8e78a 100644 --- a/Plugins/Flow.Launcher.Plugin.Program/Main.cs +++ b/Plugins/Flow.Launcher.Plugin.Program/Main.cs @@ -102,7 +102,7 @@ namespace Flow.Launcher.Plugin.Program await Task.WhenAll(a, b); Win32.WatchProgramUpdate(_settings); - UWP.WatchPackageChange(); + _ = UWP.WatchPackageChange(); } public static void IndexWin32Programs() diff --git a/Plugins/Flow.Launcher.Plugin.Program/Programs/Win32.cs b/Plugins/Flow.Launcher.Plugin.Program/Programs/Win32.cs index 61dc146a8..03606f028 100644 --- a/Plugins/Flow.Launcher.Plugin.Program/Programs/Win32.cs +++ b/Plugins/Flow.Launcher.Plugin.Program/Programs/Win32.cs @@ -660,11 +660,13 @@ namespace Flow.Launcher.Plugin.Program.Programs if (settings.EnableStartMenuSource) paths.AddRange(GetStartMenuPaths()); - paths.AddRange(from source in settings.ProgramSources where source.Enabled select source.Location); + var customSources = GetCommonParents(settings.ProgramSources); + paths.AddRange(customSources); + var fileExtensionToWatch = settings.GetSuffixes(); foreach (var directory in from path in paths where Directory.Exists(path) select path) { - WatchDirectory(directory); + WatchDirectory(directory, fileExtensionToWatch); } _ = Task.Run(MonitorDirectoryChangeAsync); @@ -685,7 +687,7 @@ namespace Flow.Launcher.Plugin.Program.Programs } } - public static void WatchDirectory(string directory) + public static void WatchDirectory(string directory, string[] extensions) { if (!Directory.Exists(directory)) { @@ -697,6 +699,9 @@ namespace Flow.Launcher.Plugin.Program.Programs watcher.Deleted += static (_, _) => indexQueue.Writer.TryWrite(default); watcher.EnableRaisingEvents = true; watcher.IncludeSubdirectories = true; + foreach(var extension in extensions) { + watcher.Filters.Add($"*.{extension}"); + } Watchers.Add(watcher); }