forked from joejulian/gio
layout: fixed divisions by zero in Flex.Layout
Signed-off-by: pierre <pierre.curto@gmail.com>
This commit is contained in:
@@ -165,8 +165,10 @@ func (f Flex) Layout(gtx Context, children ...FlexChild) Dimensions {
|
|||||||
case SpaceEvenly:
|
case SpaceEvenly:
|
||||||
mainSize += space / (1 + len(children))
|
mainSize += space / (1 + len(children))
|
||||||
case SpaceAround:
|
case SpaceAround:
|
||||||
|
if len(children) > 0 {
|
||||||
mainSize += space / (len(children) * 2)
|
mainSize += space / (len(children) * 2)
|
||||||
}
|
}
|
||||||
|
}
|
||||||
for i, child := range children {
|
for i, child := range children {
|
||||||
dims := child.dims
|
dims := child.dims
|
||||||
b := dims.Size.Y - dims.Baseline
|
b := dims.Size.Y - dims.Baseline
|
||||||
@@ -191,12 +193,16 @@ func (f Flex) Layout(gtx Context, children ...FlexChild) Dimensions {
|
|||||||
case SpaceEvenly:
|
case SpaceEvenly:
|
||||||
mainSize += space / (1 + len(children))
|
mainSize += space / (1 + len(children))
|
||||||
case SpaceAround:
|
case SpaceAround:
|
||||||
|
if len(children) > 0 {
|
||||||
mainSize += space / len(children)
|
mainSize += space / len(children)
|
||||||
|
}
|
||||||
case SpaceBetween:
|
case SpaceBetween:
|
||||||
|
if len(children) > 1 {
|
||||||
mainSize += space / (len(children) - 1)
|
mainSize += space / (len(children) - 1)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
switch f.Spacing {
|
switch f.Spacing {
|
||||||
case SpaceSides:
|
case SpaceSides:
|
||||||
mainSize += space / 2
|
mainSize += space / 2
|
||||||
@@ -205,8 +211,10 @@ func (f Flex) Layout(gtx Context, children ...FlexChild) Dimensions {
|
|||||||
case SpaceEvenly:
|
case SpaceEvenly:
|
||||||
mainSize += space / (1 + len(children))
|
mainSize += space / (1 + len(children))
|
||||||
case SpaceAround:
|
case SpaceAround:
|
||||||
|
if len(children) > 0 {
|
||||||
mainSize += space / (len(children) * 2)
|
mainSize += space / (len(children) * 2)
|
||||||
}
|
}
|
||||||
|
}
|
||||||
sz := axisPoint(f.Axis, mainSize, maxCross)
|
sz := axisPoint(f.Axis, mainSize, maxCross)
|
||||||
return Dimensions{Size: sz, Baseline: sz.Y - maxBaseline}
|
return Dimensions{Size: sz, Baseline: sz.Y - maxBaseline}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user