From 683df6345b5caaa2259e55a04c8c6b414962e196 Mon Sep 17 00:00:00 2001 From: Elias Naur Date: Mon, 1 Jul 2019 19:22:06 +0200 Subject: [PATCH] ui/layout: fix Flex spacing Signed-off-by: Elias Naur --- ui/layout/flex.go | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/ui/layout/flex.go b/ui/layout/flex.go index 30141d5f..3f42aad7 100644 --- a/ui/layout/flex.go +++ b/ui/layout/flex.go @@ -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: