layout: deal better with vertically-stacked monitors

If there is a monitor below the primary monitor, then put the message
tray there, rather than necessarily on the primary.

https://bugzilla.gnome.org/show_bug.cgi?id=636963
This commit is contained in:
Dan Winship
2011-06-13 10:37:10 -04:00
parent 64b2b4a7d4
commit 1dfffdbc4e
2 changed files with 41 additions and 13 deletions

View File

@ -1293,20 +1293,20 @@ MessageTray.prototype = {
},
_setSizePosition: function() {
let primary = Main.layoutManager.primaryMonitor;
this.actor.x = primary.x;
this.actor.y = primary.y + primary.height - 1;
this.actor.width = primary.width;
let monitor = Main.layoutManager.bottomMonitor;
this.actor.x = monitor.x;
this.actor.y = monitor.y + monitor.height - 1;
this.actor.width = monitor.width;
this._notificationBin.x = 0;
this._notificationBin.width = primary.width;
this._notificationBin.width = monitor.width;
this._summaryBin.x = 0;
this._summaryBin.width = primary.width;
this._summaryBin.width = monitor.width;
if (this._pointerBarrier)
global.destroy_pointer_barrier(this._pointerBarrier);
this._pointerBarrier =
global.create_pointer_barrier(primary.x + primary.width, primary.y + primary.height - this.actor.height,
primary.x + primary.width, primary.y + primary.height,
global.create_pointer_barrier(monitor.x + monitor.width, monitor.y + monitor.height - this.actor.height,
monitor.x + monitor.width, monitor.y + monitor.height,
4 /* BarrierNegativeX */);
@ -1867,18 +1867,18 @@ MessageTray.prototype = {
},
_showTray: function() {
let primary = Main.layoutManager.primaryMonitor;
let monitor = Main.layoutManager.bottomMonitor;
this._tween(this.actor, '_trayState', State.SHOWN,
{ y: primary.y + primary.height - this.actor.height,
{ y: monitor.y + monitor.height - this.actor.height,
time: ANIMATION_TIME,
transition: 'easeOutQuad'
});
},
_hideTray: function() {
let primary = Main.layoutManager.primaryMonitor;
let monitor = Main.layoutManager.bottomMonitor;
this._tween(this.actor, '_trayState', State.HIDDEN,
{ y: primary.y + primary.height - 1,
{ y: monitor.y + monitor.height - 1,
time: ANIMATION_TIME,
transition: 'easeOutQuad'
});