From d8c07a5741a6bde36e12e6aeb237af537274a80b Mon Sep 17 00:00:00 2001 From: Jack251970 <1160210343@qq.com> Date: Wed, 27 Nov 2024 21:44:44 +0800 Subject: [PATCH] Fix result update issue during modified collection enumeration --- Flow.Launcher/ViewModel/MainViewModel.cs | 37 ++++++++++++++---------- 1 file changed, 22 insertions(+), 15 deletions(-) diff --git a/Flow.Launcher/ViewModel/MainViewModel.cs b/Flow.Launcher/ViewModel/MainViewModel.cs index 6c17e21f0..f07d5c6dd 100644 --- a/Flow.Launcher/ViewModel/MainViewModel.cs +++ b/Flow.Launcher/ViewModel/MainViewModel.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Threading; @@ -1440,26 +1440,33 @@ namespace Flow.Launcher.ViewModel } #endif - foreach (var metaResults in resultsForUpdates) + try { - foreach (var result in metaResults.Results) + foreach (var metaResults in resultsForUpdates) { - if (_topMostRecord.IsTopMost(result)) + foreach (var result in metaResults.Results) { - result.Score = int.MaxValue; - } - else - { - var priorityScore = metaResults.Metadata.Priority * 150; - result.Score += _userSelectedRecord.GetSelectedCount(result) + priorityScore; + if (_topMostRecord.IsTopMost(result)) + { + result.Score = int.MaxValue; + } + else + { + var priorityScore = metaResults.Metadata.Priority * 150; + result.Score += _userSelectedRecord.GetSelectedCount(result) + priorityScore; + } } } + + // it should be the same for all results + bool reSelect = resultsForUpdates.First().ReSelectFirstResult; + + Results.AddResults(resultsForUpdates, token, reSelect); + } + catch (Exception ex) + { + Log.Debug("MainViewModel", $"Error in UpdateResultView: {ex.Message}"); } - - // it should be the same for all results - bool reSelect = resultsForUpdates.First().ReSelectFirstResult; - - Results.AddResults(resultsForUpdates, token, reSelect); } #endregion