layout: avoid copying whole constraints in Stack

Signed-off-by: pierre <pierre.curto@gmail.com>
This commit is contained in:
pierre
2020-12-31 17:30:53 +01:00
committed by Elias Naur
parent d23514fd58
commit 62a1d8ae6e
+5 -8
View File
@@ -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