Ensure overlay containers scroll to top when new information is presented

This commit is contained in:
Dean Herbert 2017-11-15 19:01:30 +09:00
parent 530b1e8d91
commit af03d883f1
3 changed files with 7 additions and 1 deletions

View File

@ -139,6 +139,8 @@ public SectionsContainer()
public void ScrollTo(Drawable section) => scrollContainer.ScrollTo(scrollContainer.GetChildPosInContent(section) - (FixedHeader?.BoundingBox.Height ?? 0));
public void ScrollToTop() => scrollContainer.ScrollTo(0);
private float lastKnownScroll;
protected override void UpdateAfterChildren()
{

View File

@ -30,6 +30,8 @@ public class BeatmapSetOverlay : WaveOverlayContainer
private APIAccess api;
private RulesetStore rulesets;
private readonly ScrollContainer scroll;
// receive input outside our bounds so we can trigger a close event on ourselves.
public override bool ReceiveMouseInputAt(Vector2 screenSpacePos) => true;
@ -61,7 +63,7 @@ public BeatmapSetOverlay()
RelativeSizeAxes = Axes.Both,
Colour = OsuColour.Gray(0.2f)
},
new ScrollContainer
scroll = new ScrollContainer
{
RelativeSizeAxes = Axes.Both,
ScrollbarVisible = false,
@ -120,6 +122,7 @@ public void ShowBeatmapSet(BeatmapSetInfo set)
{
header.BeatmapSet = info.BeatmapSet = set;
Show();
scroll.ScrollTo(0);
}
}
}

View File

@ -164,6 +164,7 @@ public void ShowUser(User user, bool fetchOnline = true)
}
Show();
sectionsContainer.ScrollToTop();
}
private void userLoadComplete(User user)