From c5831de95500ad3ff602954b7ae0ec90d784e2e9 Mon Sep 17 00:00:00 2001 From: Chris Waldon Date: Tue, 2 Nov 2021 17:15:12 -0400 Subject: [PATCH] widget/material: fix List anchoring with zero minimum constraints This comment and associated code were designed to guard against the scrollbar failing to anchor to the proper edge of the content when the layout.Direction was used with a zero minimum constraint. However, they were in the wrong place to actually achieve the desired behavior. This change simply moves the constraints change to before the invocation of layout.Direction's Layout method. This fixes the scrollbar appearing on the wrong edge of content when the content is laid out with a zero minimum constraint. Signed-off-by: Chris Waldon --- widget/material/list.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/widget/material/list.go b/widget/material/list.go index b9ca7be3..6f73f835 100644 --- a/widget/material/list.go +++ b/widget/material/list.go @@ -272,11 +272,11 @@ func (l ListStyle) Layout(gtx layout.Context, length int, w layout.ListElement) } majorAxisSize := l.state.Axis.Convert(listDims.Size).X start, end := fromListPosition(l.state.Position, length, majorAxisSize) + // layout.Direction respects the minimum, so ensure that the + // scrollbar will be drawn on the correct edge even if the provided + // layout.Context had a zero minimum constraint. + gtx.Constraints.Min = gtx.Constraints.Max anchoring.Layout(gtx, func(gtx layout.Context) layout.Dimensions { - // layout.Dimension respects the minimum, so ensure that the - // scrollbar will be drawn on the correct edge even if the provided - // layout.Context had a zero minimum constraint. - gtx.Constraints.Min = gtx.Constraints.Max return l.ScrollbarStyle.Layout(gtx, l.state.Axis, start, end) })