From 62a1d8ae6e78b8ca8970db52b931aeb013e1d83a Mon Sep 17 00:00:00 2001 From: pierre Date: Thu, 31 Dec 2020 17:30:53 +0100 Subject: [PATCH] layout: avoid copying whole constraints in Stack Signed-off-by: pierre --- layout/stack.go | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/layout/stack.go b/layout/stack.go index 0de43dff..d17129d6 100644 --- a/layout/stack.go +++ b/layout/stack.go @@ -50,14 +50,14 @@ func Expanded(w Widget) StackChild { func (s Stack) Layout(gtx Context, children ...StackChild) Dimensions { var maxSZ image.Point // First lay out Stacked children. + cgtx := gtx + cgtx.Constraints.Min = image.Point{} for i, w := range children { if w.expanded { continue } macro := op.Record(gtx.Ops) - gtx := gtx - gtx.Constraints.Min = image.Pt(0, 0) - dims := w.widget(gtx) + dims := w.widget(cgtx) call := macro.Stop() if w := dims.Size.X; w > maxSZ.X { maxSZ.X = w @@ -74,11 +74,8 @@ func (s Stack) Layout(gtx Context, children ...StackChild) Dimensions { continue } macro := op.Record(gtx.Ops) - gtx := gtx - gtx.Constraints = Constraints{ - Min: maxSZ, Max: gtx.Constraints.Max, - } - dims := w.widget(gtx) + cgtx.Constraints.Min = maxSZ + dims := w.widget(cgtx) call := macro.Stop() if w := dims.Size.X; w > maxSZ.X { maxSZ.X = w