layout: Ensure that the hotCorners array is always indexable by monitor number
messageTray relies on indexing the hot corners array by monitor number, so we should make this a guarantee. https://bugzilla.gnome.org/show_bug.cgi?id=698513
This commit is contained in:
parent
fdae613b14
commit
64ecfa49eb
@ -283,8 +283,10 @@ const LayoutManager = new Lang.Class({
|
||||
|
||||
_updateHotCorners: function() {
|
||||
// destroy old hot corners
|
||||
for (let i = 0; i < this.hotCorners.length; i++)
|
||||
this.hotCorners[i].destroy();
|
||||
this.hotCorners.forEach(function(corner) {
|
||||
if (corner)
|
||||
corner.destroy();
|
||||
});
|
||||
this.hotCorners = [];
|
||||
|
||||
let size = this.panelBox.height;
|
||||
@ -295,9 +297,9 @@ const LayoutManager = new Lang.Class({
|
||||
let cornerX = this._rtl ? monitor.x + monitor.width : monitor.x;
|
||||
let cornerY = monitor.y;
|
||||
|
||||
if (i != this.primaryIndex) {
|
||||
let haveTopLeftCorner = true;
|
||||
|
||||
if (i != this.primaryIndex) {
|
||||
// Check if we have a top left (right for RTL) corner.
|
||||
// I.e. if there is no monitor directly above or to the left(right)
|
||||
let besideX = this._rtl ? monitor.x + 1 : cornerX - 1;
|
||||
@ -324,14 +326,15 @@ const LayoutManager = new Lang.Class({
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!haveTopLeftCorner)
|
||||
continue;
|
||||
}
|
||||
|
||||
if (haveTopLeftCorner) {
|
||||
let corner = new HotCorner(this, monitor, cornerX, cornerY);
|
||||
corner.setBarrierSize(size);
|
||||
this.hotCorners.push(corner);
|
||||
} else {
|
||||
this.hotCorners.push(null);
|
||||
}
|
||||
}
|
||||
|
||||
this.emit('hot-corners-changed');
|
||||
@ -408,6 +411,7 @@ const LayoutManager = new Lang.Class({
|
||||
|
||||
let size = this.panelBox.height;
|
||||
this.hotCorners.forEach(function(corner) {
|
||||
if (corner)
|
||||
corner.setBarrierSize(size);
|
||||
});
|
||||
},
|
||||
|
Loading…
Reference in New Issue
Block a user