From b89237ff940e2aeb686ed4bafae40407df320b26 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ji=C5=99=C3=AD=20Pol=C3=A1=C5=A1ek?= Date: Thu, 9 Oct 2025 15:07:47 +0200 Subject: [PATCH] CmdPal: Fix "Open location" menu item for Win32 and UWP (#42248) ## Summary of the Pull Request This PR fixes the regression of the "Open containing folder" context menu items: - For Win32 apps, the command now displays the correct icon, opens the folder containing the shortcut, and selects the file. - For UWP apps, it sets the same icon and item title as the equivalent command for Win32 apps. - For both, it updates the item's title to "Open file location" to align with the Windows 11 menu naming convention. image ## PR Checklist - [x] Closes: #42244 - [ ] **Communication:** I've discussed this with core contributors already. If the work hasn't been agreed, this work might be rejected - [ ] **Tests:** Added/updated and all pass - [ ] **Localization:** All end-user-facing strings can be localized - [ ] **Dev docs:** Added/updated - [ ] **New binaries:** Added on the required places - [ ] [JSON for signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json) for new binaries - [ ] [WXS for installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs) for new binaries and localization folder - [ ] [YML for CI pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml) for new test projects - [ ] [YML for signed pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml) - [ ] **Documentation updated:** If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys) and link it here: #xxx ## Detailed Description of the Pull Request / Additional comments ## Validation Steps Performed --- .../ext/Microsoft.CmdPal.Ext.Apps/Programs/UWPApplication.cs | 3 ++- .../ext/Microsoft.CmdPal.Ext.Apps/Programs/Win32Program.cs | 5 ++++- .../Properties/Resources.Designer.cs | 4 ++-- .../ext/Microsoft.CmdPal.Ext.Apps/Properties/Resources.resx | 4 ++-- 4 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Programs/UWPApplication.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Programs/UWPApplication.cs index 7485716f1b..37698d972d 100644 --- a/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Programs/UWPApplication.cs +++ b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Programs/UWPApplication.cs @@ -103,7 +103,8 @@ public class UWPApplication : IUWPApplication new CommandContextItem( new OpenFileCommand(Location) { - Name = Resources.open_containing_folder, + Icon = new("\uE838"), + Name = Resources.open_location, }) { RequestedShortcut = KeyChords.OpenFileLocation, diff --git a/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Programs/Win32Program.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Programs/Win32Program.cs index a45f05cdf3..9b89afc425 100644 --- a/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Programs/Win32Program.cs +++ b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Programs/Win32Program.cs @@ -207,7 +207,10 @@ public class Win32Program : IProgram }); commands.Add(new CommandContextItem( - new OpenFileCommand(ParentDirectory)) + new ShowFileInFolderCommand(!string.IsNullOrEmpty(LnkFilePath) ? LnkFilePath : FullPath) + { + Name = Resources.open_location, + }) { RequestedShortcut = KeyChords.OpenFileLocation, }); diff --git a/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Properties/Resources.Designer.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Properties/Resources.Designer.cs index d00d51a728..15cc4d338e 100644 --- a/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Properties/Resources.Designer.cs +++ b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Properties/Resources.Designer.cs @@ -19,7 +19,7 @@ namespace Microsoft.CmdPal.Ext.Apps.Properties { // class via a tool like ResGen or Visual Studio. // To add or remove a member, edit your .ResX file then rerun ResGen // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "18.0.0.0")] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] internal class Resources { @@ -241,7 +241,7 @@ namespace Microsoft.CmdPal.Ext.Apps.Properties { } /// - /// Looks up a localized string similar to Open location. + /// Looks up a localized string similar to Open file location. /// internal static string open_location { get { diff --git a/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Properties/Resources.resx b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Properties/Resources.resx index 4191efddd5..dae13838e6 100644 --- a/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Properties/Resources.resx +++ b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Properties/Resources.resx @@ -161,7 +161,7 @@ File - Open location + Open file location Copy path @@ -237,4 +237,4 @@ Unlimited - + \ No newline at end of file