From e89d8b3577e09d48d12960ada44ee941ccdad041 Mon Sep 17 00:00:00 2001 From: TheBestPessimist Date: Mon, 30 Jan 2023 14:47:27 +0200 Subject: [PATCH] Read list of programs from `Start Menu` instead of `Start Menu/Programs` --- .../Programs/Win32.cs | 21 +++++++------------ 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/Plugins/Flow.Launcher.Plugin.Program/Programs/Win32.cs b/Plugins/Flow.Launcher.Plugin.Program/Programs/Win32.cs index 0762be5b7..986a8da67 100644 --- a/Plugins/Flow.Launcher.Plugin.Program/Programs/Win32.cs +++ b/Plugins/Flow.Launcher.Plugin.Program/Programs/Win32.cs @@ -457,14 +457,11 @@ namespace Flow.Launcher.Plugin.Program.Programs private static IEnumerable StartMenuPrograms(string[] suffixes, string[] protocols) { - var directory1 = Environment.GetFolderPath(Environment.SpecialFolder.Programs); - var directory2 = Environment.GetFolderPath(Environment.SpecialFolder.CommonPrograms); - var paths1 = EnumerateProgramsInDir(directory1, suffixes); - var paths2 = EnumerateProgramsInDir(directory2, suffixes); + var allPrograms = GetStartMenuPaths() + .SelectMany(p => EnumerateProgramsInDir(p, suffixes)) + .Distinct(); - var toFilter = paths1.Concat(paths2); - - var programs = ExceptDisabledSource(toFilter.Distinct()) + var programs = ExceptDisabledSource(allPrograms) .Select(x => GetProgramFromPath(x, protocols)); return programs; } @@ -702,12 +699,10 @@ namespace Flow.Launcher.Plugin.Program.Programs private static IEnumerable GetStartMenuPaths() { - var directory1 = Environment.GetFolderPath(Environment.SpecialFolder.Programs); - var directory2 = Environment.GetFolderPath(Environment.SpecialFolder.CommonPrograms); - return new[] - { - directory1, directory2 - }; + var userStartMenu = Environment.GetFolderPath(Environment.SpecialFolder.StartMenu); + var commonStartMenu = Environment.GetFolderPath(Environment.SpecialFolder.CommonStartMenu); + + return new[] { userStartMenu, commonStartMenu }; } public static void WatchProgramUpdate(Settings settings)