1
0
mirror of https://github.com/ppy/osu.git synced 2025-01-28 06:42:54 +08:00

Fix beatmap wedge appearing with incorrect info on entering song select

Closes #1762
This commit is contained in:
Dean Herbert 2017-12-27 12:30:30 +09:00
parent c445291be7
commit cf9a9762f7
2 changed files with 11 additions and 6 deletions

View File

@ -53,6 +53,11 @@ namespace osu.Game.Screens.Select
public override bool HandleInput => AllowSelection;
/// <summary>
/// Used to avoid firing null selections before the initial baetmaps have been loaded via <see cref="BeatmapSets"/>.
/// </summary>
private bool initialLoadComplete;
private IEnumerable<CarouselBeatmapSet> beatmapSets => root.Children.OfType<CarouselBeatmapSet>();
public IEnumerable<BeatmapSetInfo> BeatmapSets
@ -76,7 +81,11 @@ namespace osu.Game.Screens.Select
itemsCache.Invalidate();
scrollPositionCache.Invalidate();
Schedule(() => BeatmapSetsChanged?.Invoke());
Schedule(() =>
{
BeatmapSetsChanged?.Invoke();
initialLoadComplete = true;
});
}));
}
}
@ -513,7 +522,7 @@ namespace osu.Game.Screens.Select
currentY += DrawHeight / 2;
scrollableContent.Height = currentY;
if (selectedBeatmapSet == null || selectedBeatmap == null || selectedBeatmapSet.State.Value != CarouselItemState.Selected)
if (initialLoadComplete && (selectedBeatmapSet == null || selectedBeatmap == null || selectedBeatmapSet.State.Value != CarouselItemState.Selected))
{
selectedBeatmapSet = null;
SelectionChanged?.Invoke(null);

View File

@ -71,10 +71,6 @@ namespace osu.Game.Screens.Select
{
State = beatmap == null ? Visibility.Hidden : Visibility.Visible;
// ensure we ourselves are visible if not already.
if (!IsPresent)
State = Visibility.Visible;
Info?.FadeOut(250);
Info?.Expire();