angular / angular/components

Menu: Overlay is blocking click and contextmenu events

オープン
#9,320 コメント 9 件 リアクション 44 件 担当者 0 名 GitHub で見る
area: cdk/overlay area: material/menu feature P4
主要言語
TypeScript
スター
25k
フォーク
6.8k
平均マージ
1日 8時間
マージ済み PR(30日)
91

説明

#### Bug, feature request, or proposal:
Bug

#### What is the expected behavior?
When menu is open, any click event (including context menu events) outside of the menu and targeting clickable items, is expected to work from the first time. Menu should be closed along with the action handled by the clicked item.

#### What is the current behavior?
Overlay is blocking click events (context menu events). Clicking on the overlay first closes the menu and the user needs to click again to do his desired action (e.g. clicking navigation item that).

#### What are the steps to reproduce?
1. Go to documents/demo page.
1. Navigate to Components -> Menu
1. Click on the first example for demo
1. Try to click any other component page from the left navigation - Component page will open after second click attempt ( after the menu is closed ).

#### What is the use-case or motivation for changing an existing behavior?
The current functionality is a bad UX decision. Users usually expect to execute actions with one click (closing menu is counted towards the executed action). Making the user to click twice to close the menu and then proceed to the desired action is frustrating and not likely acceptable by most projects.

It also causes issues if developers want to do custom context menu with the Menu component.

#### Which versions of Angular, Material, OS, TypeScript, browsers are affected?
* Angular 5.1.0
* Material 5.0.2

コントリビューションガイド

コントリビューションガイドを開く

調査の方向性

まず、Components -> Menu の下にある documents/demo ページで、最初の例と左側のナビゲーションを使って問題を再現します。メニューオーバーレイによる click および contextmenu イベントの処理を追跡します。外側のクリック可能な対象が、最初のインタラクションでメニューを閉じ、そのアクションを実行すれば完了です。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
angular, typescript
領域
frontend
issue の種類
バグ
難易度
3/5
見積もり時間
1〜2日
活発さ
停滞
明瞭さ
おおむね明確
初心者へのやさしさ
35/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。