diff --git a/Plugins/Flow.Launcher.Plugin.Program/Programs/Win32.cs b/Plugins/Flow.Launcher.Plugin.Program/Programs/Win32.cs index 5cca2534b..6da6006ae 100644 --- a/Plugins/Flow.Launcher.Plugin.Program/Programs/Win32.cs +++ b/Plugins/Flow.Launcher.Plugin.Program/Programs/Win32.cs @@ -608,13 +608,20 @@ namespace Flow.Launcher.Plugin.Program.Programs private static IEnumerable ProgramsHasher(IEnumerable programs) { + var startMenuPaths = GetStartMenuPaths(); return programs.GroupBy(p => p.ExecutablePath.ToLowerInvariant()) .AsParallel() .SelectMany(g => { + // is shortcut and in start menu + var startMenu = g.Where(g => g.LnkResolvedPath != null && startMenuPaths.Any(x => FilesFolders.PathContains(x, g.FullPath))).ToList(); + if (startMenu.Any()) + return startMenu.Take(1); + + // distinct by description var temp = g.Where(g => !string.IsNullOrEmpty(g.Description)).ToList(); if (temp.Any()) - return DistinctBy(temp, x => x.Description); + return temp.Take(1); return g.Take(1); }); }