[panel] Fix allocation positioning for boxes
This change doesn't actually affect anything visibly, but using the absolute coordinates of our allocation box in allocate() is wrong; we should be positioning our children at 0,0 and using width/height as a reference. https://bugzilla.gnome.org/show_bug.cgi?id=616951
This commit is contained in:
parent
9d21b2cb25
commit
3715109ebe
@ -310,34 +310,34 @@ Panel.prototype = {
|
||||
|
||||
let x;
|
||||
let childBox = new Clutter.ActorBox();
|
||||
childBox.x1 = box.x1;
|
||||
childBox.y1 = box.y1;
|
||||
childBox.x1 = 0;
|
||||
childBox.y1 = 0;
|
||||
childBox.x2 = x = childBox.x1 + leftWidth;
|
||||
childBox.y2 = box.y2;
|
||||
childBox.y2 = allocHeight;
|
||||
this._leftBox.allocate(childBox, flags);
|
||||
|
||||
let centerNaturalX = Math.floor((box.x2 - box.x1) / 2 - (centerWidth / 2));
|
||||
let centerNaturalX = Math.floor(allocWidth / 2 - (centerWidth / 2));
|
||||
/* Check left side */
|
||||
if (x < centerNaturalX) {
|
||||
/* We didn't overflow the left, use the natural. */
|
||||
x = centerNaturalX;
|
||||
}
|
||||
/* Check right side */
|
||||
if (x + centerWidth > (box.x2 - rightWidth)) {
|
||||
x = box.x2 - rightWidth - centerWidth;
|
||||
if (x + centerWidth > (allocWidth - rightWidth)) {
|
||||
x = allocWidth - rightWidth - centerWidth;
|
||||
}
|
||||
childBox = new Clutter.ActorBox();
|
||||
childBox.x1 = x;
|
||||
childBox.y1 = box.y1;
|
||||
childBox.y1 = 0;
|
||||
childBox.x2 = x = childBox.x1 + centerWidth;
|
||||
childBox.y2 = box.y2;
|
||||
childBox.y2 = allocHeight;
|
||||
this._centerBox.allocate(childBox, flags);
|
||||
|
||||
childBox = new Clutter.ActorBox();
|
||||
childBox.x1 = box.x2 - rightWidth;
|
||||
childBox.y1 = box.y1;
|
||||
childBox.x2 = box.x2;
|
||||
childBox.y2 = box.y2;
|
||||
childBox.x1 = allocWidth - rightWidth;
|
||||
childBox.y1 = 0;
|
||||
childBox.x2 = allocWidth;
|
||||
childBox.y2 = allocHeight;
|
||||
this._rightBox.allocate(childBox, flags);
|
||||
}));
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user