From e77baa5234a9888520bddf05dd64b7c43eaeb3e6 Mon Sep 17 00:00:00 2001 From: hahaym6164 <60290070+hahaym6164@users.noreply.github.com> Date: Sun, 4 May 2025 22:24:34 -0400 Subject: [PATCH 1/3] adding variable _pressedWhileOpen, if element have [pressedWhileOpen]="true", adding stay-open-while-press class to the element --- src/material/menu/menu-trigger.ts | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/material/menu/menu-trigger.ts b/src/material/menu/menu-trigger.ts index 753ec907c611..8fb06b282b07 100644 --- a/src/material/menu/menu-trigger.ts +++ b/src/material/menu/menu-trigger.ts @@ -187,6 +187,17 @@ export class MatMenuTrigger implements AfterContentInit, OnDestroy { this._menuItemInstance?._setTriggersSubmenu(this.triggersSubmenu()); } + private _pressedWhileOpen: boolean = false; + @Input() + set pressedWhileOpen(value: boolean) { + this._pressedWhileOpen = value; + if (value) { + this._element.nativeElement.classList.add('stay-open-while-press'); + } + } + get pressedWhileOpen(): boolean { + return this._pressedWhileOpen; + } private _menu: MatMenuPanel | null; /** Data to be passed along to any lazily-rendered content. */ From c69418180240094a96f79f944dff825874b42fb4 Mon Sep 17 00:00:00 2001 From: hahaym6164 <60290070+hahaym6164@users.noreply.github.com> Date: Sun, 4 May 2025 22:25:50 -0400 Subject: [PATCH 2/3] let button stay pressed state when it have stay-open-while-press added. --- src/material/menu/menu.scss | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/material/menu/menu.scss b/src/material/menu/menu.scss index 517f0626b524..a4e24141f9cd 100644 --- a/src/material/menu/menu.scss +++ b/src/material/menu/menu.scss @@ -12,6 +12,11 @@ $token-slots: m2-menu.get-token-slots(); mat-menu { display: none; } +.mat-mdc-menu-trigger.stay-open-while-press[aria-expanded='true'] { + .mat-mdc-button-persistent-ripple:before { + opacity: var(--mat-icon-button-pressed-state-layer-opacity); + } +} .mat-mdc-menu-content { margin: 0; From 5b05ad4fce9f1e24ff58a258dcd3ed32b66b19e5 Mon Sep 17 00:00:00 2001 From: hahaym6164 <60290070+hahaym6164@users.noreply.github.com> Date: Thu, 8 May 2025 22:25:32 -0400 Subject: [PATCH 3/3] signed CLA and PR --- src/material/menu/menu.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/material/menu/menu.scss b/src/material/menu/menu.scss index a4e24141f9cd..b49c1df2fbd6 100644 --- a/src/material/menu/menu.scss +++ b/src/material/menu/menu.scss @@ -17,7 +17,7 @@ mat-menu { opacity: var(--mat-icon-button-pressed-state-layer-opacity); } } - + .mat-mdc-menu-content { margin: 0; padding: 8px 0;