Fix possible incorrect order of events due to threaded load

This commit is contained in:
smoogipoo 2018-06-21 18:45:32 +09:00
parent b2066c5d73
commit 40ed3fdd05

View File

@ -96,27 +96,29 @@ namespace osu.Game.Overlays.Direct
{
if (!Playing.Value)
{
if (Preview == null)
if (Preview != null)
{
loading = true;
Preview = previewTrackManager.Get(beatmapSet);
Preview.Started += () => Playing.Value = true;
Preview.Stopped += () => Playing.Value = false;
LoadComponentAsync(Preview, t =>
{
AddInternal(t);
Preview.Start();
loading = false;
});
Preview.Start();
return true;
}
Preview.Start();
loading = true;
var loadingPreview = previewTrackManager.Get(beatmapSet);
loadingPreview.Started += () => Playing.Value = true;
loadingPreview.Stopped += () => Playing.Value = false;
LoadComponentAsync(Preview = loadingPreview, t =>
{
if (Preview != loadingPreview)
return;
AddInternal(t);
Preview.Start();
loading = false;
});
}
else
Preview?.Stop();