layout: don't force Expanded Stack children larger than their minimum

Instead, honor the constraints after laying out both Stacked and
Expanded children.

Signed-off-by: Elias Naur <mail@eliasnaur.com>
This commit is contained in:
Elias Naur
2020-02-29 14:06:25 +01:00
parent c1048a3a54
commit 148a2828e7
2 changed files with 6 additions and 5 deletions
+1 -1
View File
@@ -69,7 +69,6 @@ func (s Stack) Layout(gtx *Context, children ...StackChild) {
children[i].macro = m
children[i].dims = dims
}
maxSZ = gtx.Constraints.Constrain(maxSZ)
// Then lay out Expanded children.
for i, w := range children {
if !w.expanded {
@@ -93,6 +92,7 @@ func (s Stack) Layout(gtx *Context, children ...StackChild) {
children[i].dims = dims
}
maxSZ = gtx.Constraints.Constrain(maxSZ)
var baseline int
for _, ch := range children {
sz := ch.dims.Size
+5 -4
View File
@@ -98,12 +98,13 @@ func (b Button) Layout(gtx *layout.Context, button *widget.Button) {
}
func (b IconButton) Layout(gtx *layout.Context, button *widget.Button) {
layout.Stack{}.Layout(gtx,
layout.Stack{Alignment: layout.Center}.Layout(gtx,
layout.Expanded(func() {
size := float32(gtx.Constraints.Width.Min)
rr := float32(size) * .5
size := gtx.Constraints.Width.Min
sizef := float32(size)
rr := sizef * .5
clip.Rect{
Rect: f32.Rectangle{Max: f32.Point{X: size, Y: size}},
Rect: f32.Rectangle{Max: f32.Point{X: sizef, Y: sizef}},
NE: rr, NW: rr, SE: rr, SW: rr,
}.Op(gtx.Ops).Add(gtx.Ops)
fill(gtx, b.Background)