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