panel: Move notification banners below time+date dropdown

As notifications appear in the time+date dropdown's message list, there's
a strong relationship between notification banners and the menu. However
while the time+date menu is centered by default, which matches the banner
position, its actual position depends on the session mode - in particular
it is moved to the right in classic mode.
Reinforce the relationship in these cases by moving notification banners
underneath the time+date menu.

https://bugzilla.gnome.org/show_bug.cgi?id=745910
This commit is contained in:
Meet Parikh 2015-04-23 16:13:03 +05:30 committed by Florian Müllner
parent f8aa486ad1
commit 674325e96c
2 changed files with 16 additions and 0 deletions

View File

@ -976,6 +976,14 @@ const MessageTray = new Lang.Class({
Shell.util_set_hidden_from_pick(this.actor, false); Shell.util_set_hidden_from_pick(this.actor, false);
}, },
get bannerAlignment() {
return this._bannerBin.get_x_align();
},
set bannerAlignment(align) {
this._bannerBin.set_x_align(align);
},
_onNotificationKeyRelease: function(actor, event) { _onNotificationKeyRelease: function(actor, event) {
if (event.get_key_symbol() == Clutter.KEY_Escape && event.get_state() == 0) { if (event.get_key_symbol() == Clutter.KEY_Escape && event.get_state() == 0) {
this._expireNotification(); this._expireNotification();

View File

@ -933,6 +933,14 @@ const Panel = new Lang.Class({
this._updateBox(panel.center, this._centerBox); this._updateBox(panel.center, this._centerBox);
this._updateBox(panel.right, this._rightBox); this._updateBox(panel.right, this._rightBox);
if (panel.left.indexOf('dateMenu') != -1)
Main.messageTray.bannerAlignment = Clutter.ActorAlign.START;
else if (panel.right.indexOf('dateMenu') != -1)
Main.messageTray.bannerAlignment = Clutter.ActorAlign.END;
// Default to center if there is no dateMenu
else
Main.messageTray.bannerAlignment = Clutter.ActorAlign.CENTER;
if (this._sessionStyle) if (this._sessionStyle)
this._removeStyleClassName(this._sessionStyle); this._removeStyleClassName(this._sessionStyle);