switcherPopup: Fix spacing calculation for empty lists
Without special-casing, our current spacing calculation results in negative size requests for empty lists, which will trigger a Clutter assert later. While the list is never supposed to be empty, bugs happen; crashing users' systems is the least graceful way of handling this, so don't do it. https://bugzilla.gnome.org/show_bug.cgi?id=722434
This commit is contained in:
parent
d981515b08
commit
1118cf1810
@ -509,7 +509,7 @@ const SwitcherList = new Lang.Class({
|
||||
_getPreferredWidth: function (actor, forHeight, alloc) {
|
||||
let [maxChildMin, maxChildNat] = this._maxChildWidth(forHeight);
|
||||
|
||||
let totalSpacing = this._list.spacing * (this._items.length - 1);
|
||||
let totalSpacing = Math.max(this._list.spacing * (this._items.length - 1), 0);
|
||||
alloc.min_size = this._items.length * maxChildMin + totalSpacing;
|
||||
alloc.natural_size = alloc.min_size;
|
||||
this._minSize = alloc.min_size;
|
||||
@ -539,7 +539,7 @@ const SwitcherList = new Lang.Class({
|
||||
let childHeight = box.y2 - box.y1;
|
||||
|
||||
let [maxChildMin, maxChildNat] = this._maxChildWidth(childHeight);
|
||||
let totalSpacing = this._list.spacing * (this._items.length - 1);
|
||||
let totalSpacing = Math.max(this._list.spacing * (this._items.length - 1), 0);
|
||||
|
||||
let childWidth = Math.floor(Math.max(0, box.x2 - box.x1 - totalSpacing) / this._items.length);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user