Skip to content

Conversation

@dipeshmsft
Copy link
Member

Addresses #5835
This is a port of a servicing fix in .NET 4.7-4.8.

Description

There are two reasons the context menu does not display. The first reason is that its owner gets removed from the tree after the right-button-up gesture but before the PopupControlService initiates the display logic. The logic notices that the owner is not being displayed, and therefore doesn't display the context menu. This is by design - you shouldn't display a context menu for an element that isn't itself visible.

The second reason is that the (shared) context menu is in a bad state, where it's marked IsOpen=true, but isn't actually being displayed. The display logic doesn't do anything, since it thinks the menu is already open. This is a bug, left over from the first case, which doesn't reset IsOpen to false when it aborts the display logic. The net effect is that once a context menu doesn't open because of reason 1, it will never open again, even in cases where it should.

The fix is to reset the context menu's state when aborting the display logic.

Customer Impact

ContextMenus stop working

Regression

No

Testing

Ad-hoc around customer scenario.
Standard regression testing.

Risk

Low. Port of a .NETFx servicing fix released earlier this year.

@dipeshmsft dipeshmsft requested a review from a team as a code owner January 27, 2022 11:20
@ghost ghost added the PR metadata: Label to tag PRs, to facilitate with triage label Jan 27, 2022
@ghost ghost requested review from SamBent, fabiant3 and ryalanms January 27, 2022 11:20
@leecow leecow added this to the 5.0.15 milestone Feb 3, 2022
@dipeshmsft dipeshmsft merged commit 71e50ad into dotnet:release/5.0 Feb 7, 2022
@dipeshmsft dipeshmsft deleted the pr5843 branch March 14, 2022 02:27
@ghost ghost locked as resolved and limited conversation to collaborators Apr 13, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

PR metadata: Label to tag PRs, to facilitate with triage Servicing-approved

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants