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
674325e96c
commit
08690d658f
@ -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