From 7c244b01c614da84c42a915a3626a449d3dc8c70 Mon Sep 17 00:00:00 2001 From: Giovanni Campagna Date: Tue, 4 Sep 2012 18:27:50 +0200 Subject: [PATCH] Panel: move the _panelContainer down to PanelMenu Panel already forces each item to be a PanelMenu.Button, so it's better to have the latter handle the bin container too, instead of attaching a private property that might collide with internal usage by the indicator. https://bugzilla.gnome.org/show_bug.cgi?id=683156 --- js/ui/panel.js | 12 +++--------- js/ui/panelMenu.js | 4 ++++ 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/js/ui/panel.js b/js/ui/panel.js index 2e14c2277..a92b810fb 100644 --- a/js/ui/panel.js +++ b/js/ui/panel.js @@ -1174,7 +1174,7 @@ const Panel = new Lang.Class({ let indicator = this.statusArea[role]; if (!indicator) continue; - indicator._panelContainer.hide(); + indicator.container.hide(); } }, @@ -1206,18 +1206,12 @@ const Panel = new Lang.Class({ }, _addToPanelBox: function(role, indicator, position, box) { - let container = indicator._panelContainer; - if (!container) { - container = new St.Bin({ y_fill: true, - child: indicator.actor }); - indicator._panelContainer = container; - } + let container = indicator.container; container.show(); let parent = container.get_parent(); - if (parent) { + if (parent) parent.remove_actor(container); - } box.insert_child_at_index(container, position); if (indicator.menu) diff --git a/js/ui/panelMenu.js b/js/ui/panelMenu.js index 1cad7c894..a20c5fc21 100644 --- a/js/ui/panelMenu.js +++ b/js/ui/panelMenu.js @@ -21,6 +21,10 @@ const ButtonBox = new Lang.Class({ this.actor = new Shell.GenericContainer(params); this.actor._delegate = this; + this.container = new St.Bin({ y_fill: true, + x_fill: true, + child: this.actor }); + this.actor.connect('get-preferred-width', Lang.bind(this, this._getPreferredWidth)); this.actor.connect('get-preferred-height', Lang.bind(this, this._getPreferredHeight)); this.actor.connect('allocate', Lang.bind(this, this._allocate));