From 6e3507af165f905a64139986f62320d7c297caf1 Mon Sep 17 00:00:00 2001 From: Jordi Adoumie Date: Mon, 25 Nov 2024 15:36:39 -0800 Subject: [PATCH] returning a new commanditem each time in toplevelcommands seems to work best? --- .../Commands/KillProcessCommand.cs | 11 +++++++++++ .../WindowWalkerCommandsProvider.cs | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowWalker/Commands/KillProcessCommand.cs b/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowWalker/Commands/KillProcessCommand.cs index 46d3d17802..45daecdf1e 100644 --- a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowWalker/Commands/KillProcessCommand.cs +++ b/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowWalker/Commands/KillProcessCommand.cs @@ -10,6 +10,7 @@ using System.Threading.Tasks; using Microsoft.CmdPal.Ext.WindowWalker.Components; using Microsoft.CmdPal.Ext.WindowWalker.Helpers; using Microsoft.CmdPal.Ext.WindowWalker.Properties; +using Microsoft.CmdPal.Extensions; using Microsoft.CmdPal.Extensions.Helpers; namespace Microsoft.CmdPal.Ext.WindowWalker.Commands; @@ -64,4 +65,14 @@ internal sealed partial class KillProcessCommand : InvokableCommand window.Process.KillThisProcess(SettingsManager.Instance.KillProcessTree); return !SettingsManager.Instance.OpenAfterKillAndClose; } + + public override ICommandResult Invoke() + { + if (KillProcess(_window)) + { + return CommandResult.KeepOpen(); + } + + return CommandResult.Dismiss(); + } } diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowWalker/WindowWalkerCommandsProvider.cs b/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowWalker/WindowWalkerCommandsProvider.cs index 4fbf16f72b..2d2349a50e 100644 --- a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowWalker/WindowWalkerCommandsProvider.cs +++ b/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowWalker/WindowWalkerCommandsProvider.cs @@ -30,6 +30,6 @@ public partial class WindowWalkerCommandsProvider : CommandProvider public override ICommandItem[] TopLevelCommands() { - return [_walkerCommand]; + return [new WalkerTopLevelCommandItem(_settingsManager)]; } }