forked from joejulian/gio
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:
+1
-1
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user