panel: Block banners when opening menus that would overlap
We currently block banners while the time+date menu is open, as it would obscure the notification. However it is not necessarily the only menu for which this is the case, so generalize the behavior to all menus that would overlap banners when open. https://bugzilla.gnome.org/show_bug.cgi?id=745910
This commit is contained in:

committed by
Florian Müllner

parent
e4974beebf
commit
95c903aa40
@ -1003,6 +1003,25 @@ const Panel = new Lang.Class({
|
||||
if (parent)
|
||||
parent.remove_actor(container);
|
||||
|
||||
if (indicator._openChangedId > 0)
|
||||
indicator.menu.disconnect(indicator._openChangedId);
|
||||
indicator._openChangedId = 0;
|
||||
|
||||
if (indicator.menu)
|
||||
indicator._openChangedId = indicator.menu.connect('open-state-changed',
|
||||
Lang.bind(this, function(menu, isOpen) {
|
||||
let boxAlignment;
|
||||
if (box == this._leftBox)
|
||||
boxAlignment = Clutter.ActorAlign.START;
|
||||
else if (box == this._centerBox)
|
||||
boxAlignment = Clutter.ActorAlign.CENTER;
|
||||
else if (box == this._rightBox)
|
||||
boxAlignment = Clutter.ActorAlign.END;
|
||||
|
||||
if (boxAlignment == Main.messageTray.bannerAlignment)
|
||||
Main.messageTray.bannerBlocked = isOpen;
|
||||
}));
|
||||
|
||||
box.insert_child_at_index(container, position);
|
||||
if (indicator.menu)
|
||||
this.menuManager.addMenu(indicator.menu);
|
||||
|
Reference in New Issue
Block a user