diff --git a/js/ui/centerLayout.js b/js/ui/centerLayout.js index eef124b89..19f64028e 100644 --- a/js/ui/centerLayout.js +++ b/js/ui/centerLayout.js @@ -50,9 +50,7 @@ const CenterLayout = new Lang.Class({ let [left, center, right] = container.get_children(); // Only support horizontal layouts for now. - let [leftMinWidth, leftNaturalWidth] = left.get_preferred_width(availWidth); let [centerMinWidth, centerNaturalWidth] = center.get_preferred_width(availWidth); - let [rightMinWidth, rightNaturalWidth] = right.get_preferred_width(availWidth); let sideWidth = (availWidth - centerNaturalWidth) / 2; @@ -60,30 +58,36 @@ const CenterLayout = new Lang.Class({ childBox.y1 = box.y1; childBox.y2 = box.y1 + availHeight; - let leftSide = Math.min(Math.floor(sideWidth), leftNaturalWidth); - if (rtl) { - childBox.x1 = availWidth - leftSide; - childBox.x2 = availWidth; - } else { - childBox.x1 = 0; - childBox.x2 = leftSide; + if (left) { + let [leftMinWidth, leftNaturalWidth] = left.get_preferred_width(availWidth); + let leftSide = Math.min(Math.floor(sideWidth), leftNaturalWidth); + if (rtl) { + childBox.x1 = availWidth - leftSide; + childBox.x2 = availWidth; + } else { + childBox.x1 = 0; + childBox.x2 = leftSide; + } + childBox.x1 += box.x1; + left.allocate(childBox, flags); } - childBox.x1 += box.x1; - left.allocate(childBox, flags); childBox.x1 = box.x1 + Math.ceil(sideWidth); childBox.x2 = childBox.x1 + centerNaturalWidth; center.allocate(childBox, flags); - let rightSide = Math.min(Math.floor(sideWidth), rightNaturalWidth); - if (rtl) { - childBox.x1 = 0; - childBox.x2 = rightSide; - } else { - childBox.x1 = availWidth - rightSide; - childBox.x2 = availWidth; + if (right) { + let [rightMinWidth, rightNaturalWidth] = right.get_preferred_width(availWidth); + let rightSide = Math.min(Math.floor(sideWidth), rightNaturalWidth); + if (rtl) { + childBox.x1 = 0; + childBox.x2 = rightSide; + } else { + childBox.x1 = availWidth - rightSide; + childBox.x2 = availWidth; + } + childBox.x1 += box.x1; + right.allocate(childBox, flags); } - childBox.x1 += box.x1; - right.allocate(childBox, flags); } });