diff --git a/Flow.Launcher/ViewModel/MainViewModel.cs b/Flow.Launcher/ViewModel/MainViewModel.cs index 6be88ced5..65a382447 100644 --- a/Flow.Launcher/ViewModel/MainViewModel.cs +++ b/Flow.Launcher/ViewModel/MainViewModel.cs @@ -1322,12 +1322,19 @@ namespace Flow.Launcher.ViewModel } } - private List GetHistoryItems(IEnumerable historyItems) + private List GetHistoryItems(IEnumerable historyItems, int? selectLast = null) { var results = new List(); + // Order by executed time descending: Latest -> Oldest historyItems = historyItems.OrderByDescending(x => x.ExecutedDateTime); + // Select the last N items if specified + if (selectLast.HasValue) + { + historyItems = historyItems.Take(selectLast.Value); + } + if (Settings.HistoryStyle == HistoryStyle.LastOpened) { // Items saved to disk are differentiated by Query also, but LastOpened style only cares about unique results @@ -1637,10 +1644,8 @@ namespace Flow.Launcher.ViewModel void QueryHistoryTask(CancellationToken token) { - // Select last history results and revert its order to make sure last history results are on top - var historyItems = _history.LastOpenedHistoryItems.TakeLast(Settings.MaxHistoryResultsToShowForHomePage).Reverse(); - - var results = GetHistoryItems(historyItems); + // Select last history results + var results = GetHistoryItems(_history.LastOpenedHistoryItems, Settings.MaxHistoryResultsToShowForHomePage); if (token.IsCancellationRequested) return;