From d120d03de9b758366c3ae3e040b765f26a12f6e8 Mon Sep 17 00:00:00 2001 From: Colin Walters Date: Tue, 6 Oct 2009 14:07:40 -0400 Subject: [PATCH] Workaround being allocated 0x0 Because of a chain of bugs we could end up getting allocated 0x0, and this would cause the WellGrid allocation code to be unhappy. See http://bugzilla.openedhand.com/show_bug.cgi?id=1831 Simply treat 0 as "unlimited" i.e. equivalent to -1. https://bugzilla.gnome.org/show_bug.cgi?id=597586 --- js/ui/appDisplay.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/js/ui/appDisplay.js b/js/ui/appDisplay.js index 3e9a3bd70..85b6ee61f 100644 --- a/js/ui/appDisplay.js +++ b/js/ui/appDisplay.js @@ -695,7 +695,10 @@ WellGrid.prototype = { return [0, WELL_DEFAULT_COLUMNS, 0, 0]; let nColumns = 0; let usedWidth = 0; - if (forWidth < 0) { + // Big.Box will allocate us at 0x0 if we are not visible; this is probably a + // Big.Box bug but it can't be fixed because if children are skipped in allocate() + // Clutter gets confused (see http://bugzilla.openedhand.com/show_bug.cgi?id=1831) + if (forWidth <= 0) { nColumns = WELL_DEFAULT_COLUMNS; } else { while (nColumns < WELL_DEFAULT_COLUMNS && @@ -720,7 +723,7 @@ WellGrid.prototype = { let rows = Math.ceil(children.length / nColumns); let itemWidth; - if (forWidth < 0) { + if (forWidth <= 0) { itemWidth = itemNaturalWidth; } else { itemWidth = Math.floor(forWidth / nColumns);