Fix selection not occurring when switching from empty ruleset on first load

This commit is contained in:
Dean Herbert
2020-03-20 15:01:26 +09:00
parent 549cec80d6
commit 9b60b535e5
3 changed files with 37 additions and 4 deletions

View File

@ -751,13 +751,17 @@ namespace osu.Game.Screens.Select
public CarouselRoot(BeatmapCarousel carousel)
{
// root should always remaing selected. if not, PerformSelection will not be called.
State.Value = CarouselItemState.Selected;
State.ValueChanged += state => State.Value = CarouselItemState.Selected;
this.carousel = carousel;
}
protected override void PerformSelection()
{
if (LastSelected == null)
carousel.SelectNextRandom();
carousel?.SelectNextRandom();
else
base.PerformSelection();
}

View File

@ -150,6 +150,7 @@ namespace osu.Game.Screens.Select
},
Child = Carousel = new BeatmapCarousel
{
AllowSelection = false, // delay any selection until our bindables are ready to make a good choice.
Anchor = Anchor.CentreRight,
Origin = Anchor.CentreRight,
RelativeSizeAxes = Axes.Both,
@ -655,6 +656,8 @@ namespace osu.Game.Screens.Select
{
bindBindables();
Carousel.AllowSelection = true;
// If a selection was already obtained, do not attempt to update the selected beatmap.
if (Carousel.SelectedBeatmapSet != null)
return;