Merge pull request #2062 from VictoriousRaptor/FilterStartMenuPrograms

Prioritize shortcut in start menu
This commit is contained in:
Jeremy Wu 2023-04-19 08:01:46 +10:00 committed by GitHub
commit 2a1d9de6df
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -608,13 +608,20 @@ namespace Flow.Launcher.Plugin.Program.Programs
private static IEnumerable<Win32> ProgramsHasher(IEnumerable<Win32> 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);
});
}