Skip to content

Commit f5d0ae6

Browse files
jiripolasekyeelam-gordon
authored andcommitted
CmdPal: Allow list item context menu (#45086)
## Summary of the Pull Request This PR enables pointer-invoked context menus for list items when the list contains at least one item, including the primary item. The command bar "More" button or Ctrl+K hotkey remain unaffected - the menu is not accessible through those. <img width="453" height="210" alt="image" src="https://github.com/user-attachments/assets/af0f38e3-e1e7-4968-9e2d-6d9293785ab1" /> <!-- Please review the items on the PR checklist before submitting--> ## PR Checklist - [x] Closes: #45083 <!-- - [ ] Closes: #yyy (add separate lines for additional resolved issues) --> - [ ] **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 <!-- Provide a more detailed description of the PR, other things fixed, or any additional comments/features here --> ## Detailed Description of the Pull Request / Additional comments <!-- Describe how you validated the behavior. Add automated tests wherever possible, but list manual validation steps taken as well --> ## Validation Steps Performed
1 parent 29c141f commit f5d0ae6

File tree

2 files changed

+8
-6
lines changed

2 files changed

+8
-6
lines changed

src/modules/cmdpal/Core/Microsoft.CmdPal.Core.ViewModels/ContextMenuViewModel.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ public void UpdateContextItems()
5353
{
5454
if (SelectedItem is not null)
5555
{
56-
if (SelectedItem.MoreCommands.Count() > 1)
56+
if (SelectedItem.PrimaryCommand is not null || SelectedItem.HasMoreCommands)
5757
{
5858
ContextMenuStack.Clear();
5959
PushContextStack(SelectedItem.AllCommands);

src/modules/cmdpal/Microsoft.CmdPal.UI/Controls/CommandBar.xaml.cs

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -44,13 +44,14 @@ public CommandBar()
4444

4545
public void Receive(OpenContextMenuMessage message)
4646
{
47-
if (!ViewModel.ShouldShowContextMenu)
48-
{
49-
return;
50-
}
51-
5247
if (message.Element is null)
5348
{
49+
// This is invoked from the "More" button on the command bar
50+
if (!ViewModel.ShouldShowContextMenu)
51+
{
52+
return;
53+
}
54+
5455
_ = DispatcherQueue.TryEnqueue(
5556
() =>
5657
{
@@ -65,6 +66,7 @@ public void Receive(OpenContextMenuMessage message)
6566
}
6667
else
6768
{
69+
// This is invoked from a specific element
6870
_ = DispatcherQueue.TryEnqueue(
6971
() =>
7072
{

0 commit comments

Comments
 (0)