angular / angular/components

bug(cdk-menu): cdkMenuTriggerFor within cdkContextMenuTriggerFor causes repositioning when hovered

Open
#26,675 0 comments 6 reactions 0 assignees View on GitHub
area: cdk/menu P3
Dominant language
TypeScript
Stars
25k
Forks
6.8k
Avg merge
1d 8h
Merged PRs (30d)
91

Description

### Is this a regression?

- [ ] Yes, this behavior used to work in the previous version

### The previous version in which this bug was not present was

_No response_

### Description

Using a `[cdkMenuTriggerFor]` within a container that has a `[cdkContextMenuTriggerFor]` for the same cdkMenu.

Current behavior:
When a cdkMenu is opened by the `[cdkContextMenuTriggerFor]` the cdkMenu it will be repositioned to the `[cdkMenuTriggerFor]` when the `[cdkMenuTriggerFor]` is hovered.

Expected behavior:
the cdkMenu should stay at its current location, even if `[cdkMenuTriggerFor]` is hovered.

In case this is confirmed as a bug, I could provide a PR fixing the issue

### Reproduction

Stackblitz: https://stackblitz.com/edit/components-issue-uo4741?file=src/app/example-component.html

Steps to reproduce:
1. Right click on Lucas ipsum
2. hover Open Context Menu button

### Expected Behavior

contextMenu does not change position

### Actual Behavior

contextMenu moves to the location of the button trigger

### Environment

- Angular: 15
- CDK/Material: 15
- Browser(s): Firefox, Chrome
- Operating System (e.g. Windows, macOS, Ubuntu): Ubuntu

Can also be reproduced with the dev-app in the components repo

Contributor guide

Open the contributing guide

Research direction

Start with the linked Stackblitz reproduction and compare it with the components repository's dev-app. Reproduce the context menu repositioning by right-clicking Lucas ipsum and hovering the Open Context Menu button; done means the menu remains at its original location when the nested trigger is hovered.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
frontend
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.