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
+5 -1
View File
@@ -143,7 +143,7 @@ func (f *Flex) Layout(children ...FlexChild) Dimens {
case SpaceAround: case SpaceAround:
mainSize += space / (len(children) * 2) mainSize += space / (len(children) * 2)
} }
for _, child := range children { for i, child := range children {
dims := child.dims dims := child.dims
b := dims.Baseline b := dims.Baseline
var cross int var cross int
@@ -164,6 +164,7 @@ func (f *Flex) Layout(children ...FlexChild) Dimens {
child.block.Add(f.ops) child.block.Add(f.ops)
ui.PopOp{}.Add(f.ops) ui.PopOp{}.Add(f.ops)
mainSize += axisMain(f.Axis, dims.Size) mainSize += axisMain(f.Axis, dims.Size)
if i < len(children)-1 {
switch f.MainAxisAlignment { switch f.MainAxisAlignment {
case SpaceEvenly: case SpaceEvenly:
mainSize += space / (1 + len(children)) mainSize += space / (1 + len(children))
@@ -172,11 +173,14 @@ func (f *Flex) Layout(children ...FlexChild) Dimens {
case SpaceBetween: case SpaceBetween:
mainSize += space / (len(children) - 1) mainSize += space / (len(children) - 1)
} }
}
if b != dims.Size.Y { if b != dims.Size.Y {
baseline = b baseline = b
} }
} }
switch f.MainAxisAlignment { switch f.MainAxisAlignment {
case Center:
mainSize += space / 2
case Start: case Start:
mainSize += space mainSize += space
case SpaceEvenly: case SpaceEvenly: