iconGrid: Take extra spacing into account for height requests

This fixes the clipped app picker in the overview.

https://bugzilla.gnome.org/show_bug.cgi?id=694234
This commit is contained in:
Jasper St. Pierre 2013-02-19 21:18:48 -05:00
parent a8a4a85dac
commit aad5d98b43

View File

@ -218,11 +218,14 @@ const IconGrid = new Lang.Class({
_getPreferredHeight: function (grid, forWidth, alloc) {
let children = this._getVisibleChildren();
let nColumns;
if (forWidth < 0)
let nColumns, spacing;
if (forWidth < 0) {
nColumns = children.length;
else
nColumns = this._computeLayout(forWidth)[0];
spacing = this._spacing;
} else {
[nColumns, , spacing] = this._computeLayout(forWidth);
}
let nRows;
if (nColumns > 0)
nRows = Math.ceil(children.length / nColumns);
@ -230,7 +233,7 @@ const IconGrid = new Lang.Class({
nRows = 0;
if (this._rowLimit)
nRows = Math.min(nRows, this._rowLimit);
let totalSpacing = Math.max(0, nRows - 1) * this._spacing;
let totalSpacing = Math.max(0, nRows - 1) * spacing;
let height = nRows * this._vItemSize + totalSpacing;
alloc.min_size = height;
alloc.natural_size = height;