From 300d64d66165e4cc302dcf58ce8fe908323135be Mon Sep 17 00:00:00 2001 From: Jack251970 <1160210343@qq.com> Date: Fri, 21 Feb 2025 13:43:53 +0800 Subject: [PATCH] Remove action keyword first --- Flow.Launcher.Core/Plugin/PluginManager.cs | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/Flow.Launcher.Core/Plugin/PluginManager.cs b/Flow.Launcher.Core/Plugin/PluginManager.cs index d0e6fcab0..18519c85d 100644 --- a/Flow.Launcher.Core/Plugin/PluginManager.cs +++ b/Flow.Launcher.Core/Plugin/PluginManager.cs @@ -412,14 +412,16 @@ namespace Flow.Launcher.Core.Plugin { if (CheckActionKeywordChanged(oldActionKeywords, newActionKeywords)) { + // Fix collection modified while iterating exception + var oldActionKeywordsClone = oldActionKeywords.ToList(); + foreach (var actionKeyword in oldActionKeywordsClone) + { + RemoveActionKeyword(id, actionKeyword); + } foreach (var actionKeyword in newActionKeywords) { AddActionKeyword(id, actionKeyword); } - foreach (var actionKeyword in oldActionKeywords) - { - RemoveActionKeyword(id, actionKeyword); - } // Update action keyword in plugin metadata var plugin = GetPluginForId(id); @@ -445,8 +447,8 @@ namespace Flow.Launcher.Core.Plugin { if (oldActionKeyword != newActionKeyword) { - AddActionKeyword(id, newActionKeyword); RemoveActionKeyword(id, oldActionKeyword); + AddActionKeyword(id, newActionKeyword); // Update action keyword in plugin metadata var plugin = GetPluginForId(id);