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:
parent
e4974beebf
commit
95c903aa40
@ -357,8 +357,6 @@ const DateMenuButton = new Lang.Class({
|
||||
this._date.setDate(now);
|
||||
this._messageList.setDate(now);
|
||||
}
|
||||
// Block notification banners while the menu is open
|
||||
Main.messageTray.bannerBlocked = isOpen;
|
||||
}));
|
||||
|
||||
// Fill up the first column
|
||||
|
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user