[gnome-shell] panel: Add `PanelMenu.Button` menu when `menu-set` is emitted
- From: Marge Bot <marge-bot src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell] panel: Add `PanelMenu.Button` menu when `menu-set` is emitted
- Date: Sat, 17 Sep 2022 18:09:15 +0000 (UTC)
commit 990eb92bd91b08b6943ba969b0e00a4a98f75fbf
Author: Andy Holmes <andrew g r holmes gmail com>
Date: Sun Sep 4 17:21:29 2022 -0700
panel: Add `PanelMenu.Button` menu when `menu-set` is emitted
When a `PanelMenu.Button` is added to the `statusArea`, its menu is
added to the `PopupMenuManager` if it has one at the time. If a menu is
added later or a new one set, the new menu is never added.
Move the call to `PopupMenuManager.addMenu()` from `_addToPanelBox()`
to `_onMenuSet()`, which is called when the `PanelMenu.Button` is added
and whenever it emits the `menu-set` signal.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2470>
js/ui/panel.js | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
---
diff --git a/js/ui/panel.js b/js/ui/panel.js
index 24248865ba..94dffda732 100644
--- a/js/ui/panel.js
+++ b/js/ui/panel.js
@@ -707,8 +707,6 @@ class Panel extends St.Widget {
box.insert_child_at_index(container, position);
- if (indicator.menu)
- this.menuManager.addMenu(indicator.menu);
this.statusArea[role] = indicator;
let destroyId = indicator.connect('destroy', emitter => {
delete this.statusArea[role];
@@ -741,6 +739,8 @@ class Panel extends St.Widget {
if (!indicator.menu || indicator.menu._openChangedId)
return;
+ this.menuManager.addMenu(indicator.menu);
+
indicator.menu._openChangedId = indicator.menu.connect('open-state-changed',
(menu, isOpen) => {
let boxAlignment;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]