mirror of
https://git.sr.ht/~eliasnaur/gio
synced 2026-07-07 02:15:34 +00:00
widget/material: use more efficient way of scrolling lists
Signed-off-by: Dominik Honnef <dominik@honnef.co>
This commit is contained in:
committed by
Elias Naur
parent
8af4472672
commit
5f818bc5e7
@@ -292,12 +292,7 @@ func (l ListStyle) Layout(gtx layout.Context, length int, w layout.ListElement)
|
|||||||
if delta := l.state.ScrollDistance(); delta != 0 {
|
if delta := l.state.ScrollDistance(); delta != 0 {
|
||||||
// Handle any changes to the list position as a result of user interaction
|
// Handle any changes to the list position as a result of user interaction
|
||||||
// with the scrollbar.
|
// with the scrollbar.
|
||||||
l.state.List.Position.Offset += int(math.Round(float64(float32(l.state.Position.Length) * delta)))
|
l.state.List.ScrollBy(delta * float32(length))
|
||||||
|
|
||||||
// Ensure that the list pays attention to the Offset field when the scrollbar drag
|
|
||||||
// is started while the bar is at the end of the list. Without this, the scrollbar
|
|
||||||
// cannot be dragged away from the end.
|
|
||||||
l.state.List.Position.BeforeEnd = true
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if l.AnchorStrategy == Occupy {
|
if l.AnchorStrategy == Occupy {
|
||||||
|
|||||||
Reference in New Issue
Block a user