1
0
mirror of https://github.com/ppy/osu.git synced 2024-11-06 06:57:39 +08:00

Update scroll position before applying any panel animations

In the case of automatic scroll requirements (ie. scroll to selected) we
are delegating the animation logic to the panels themselves. In order to
make this work correctly, the scroll operation needs to take effect
before any animation updates are run.
This commit is contained in:
Dean Herbert 2020-11-26 18:33:37 +09:00
parent 6058c66edb
commit ad258e2e52

View File

@ -573,6 +573,9 @@ namespace osu.Game.Screens.Select
if (revalidateItems)
updateYPositions();
if (!scrollPositionCache.IsValid)
updateScrollPosition();
// This data is consumed to find the currently displayable range.
// This is the range we want to keep drawables for, and should exceed the visible range slightly to avoid drawable churn.
var newDisplayRange = getDisplayRange();
@ -653,14 +656,6 @@ namespace osu.Game.Screens.Select
return (firstIndex, lastIndex);
}
protected override void UpdateAfterChildren()
{
base.UpdateAfterChildren();
if (!scrollPositionCache.IsValid)
updateScrollPosition();
}
private void beatmapRemoved(ValueChangedEvent<WeakReference<BeatmapSetInfo>> weakItem)
{
if (weakItem.NewValue.TryGetTarget(out var item))