ui/layout: fix Flex spacing

Signed-off-by: Elias Naur <mail@eliasnaur.com>
This commit is contained in:
Elias Naur
2019-07-01 19:22:06 +02:00
parent 91de9acc4a
commit 683df6345b
+12 -8
View File
@@ -143,7 +143,7 @@ func (f *Flex) Layout(children ...FlexChild) Dimens {
case SpaceAround:
mainSize += space / (len(children) * 2)
}
for _, child := range children {
for i, child := range children {
dims := child.dims
b := dims.Baseline
var cross int
@@ -164,19 +164,23 @@ func (f *Flex) Layout(children ...FlexChild) Dimens {
child.block.Add(f.ops)
ui.PopOp{}.Add(f.ops)
mainSize += axisMain(f.Axis, dims.Size)
switch f.MainAxisAlignment {
case SpaceEvenly:
mainSize += space / (1 + len(children))
case SpaceAround:
mainSize += space / len(children)
case SpaceBetween:
mainSize += space / (len(children) - 1)
if i < len(children)-1 {
switch f.MainAxisAlignment {
case SpaceEvenly:
mainSize += space / (1 + len(children))
case SpaceAround:
mainSize += space / len(children)
case SpaceBetween:
mainSize += space / (len(children) - 1)
}
}
if b != dims.Size.Y {
baseline = b
}
}
switch f.MainAxisAlignment {
case Center:
mainSize += space / 2
case Start:
mainSize += space
case SpaceEvenly: