mirror of
https://github.com/ppy/osu.git
synced 2025-01-26 18:52:55 +08:00
Fix potentially racey behaviour of versionManager initialisation
Changing the state while the container wasn't necessarily completed loading caused inconsistent behaviour.
This commit is contained in:
parent
ab0e3ccc55
commit
0ea6c65be6
@ -20,16 +20,11 @@ namespace osu.Desktop
|
|||||||
{
|
{
|
||||||
internal class OsuGameDesktop : OsuGame
|
internal class OsuGameDesktop : OsuGame
|
||||||
{
|
{
|
||||||
private readonly VersionManager versionManager;
|
private VersionManager versionManager;
|
||||||
|
|
||||||
public OsuGameDesktop(string[] args = null)
|
public OsuGameDesktop(string[] args = null)
|
||||||
: base(args)
|
: base(args)
|
||||||
{
|
{
|
||||||
versionManager = new VersionManager
|
|
||||||
{
|
|
||||||
Depth = int.MinValue,
|
|
||||||
State = Visibility.Hidden
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override Storage GetStorageForStableInstall()
|
public override Storage GetStorageForStableInstall()
|
||||||
@ -88,11 +83,15 @@ namespace osu.Desktop
|
|||||||
{
|
{
|
||||||
base.LoadComplete();
|
base.LoadComplete();
|
||||||
|
|
||||||
LoadComponentAsync(versionManager, Add);
|
LoadComponentAsync(versionManager = new VersionManager { Depth = int.MinValue });
|
||||||
|
|
||||||
ScreenChanged += s =>
|
ScreenChanged += s =>
|
||||||
{
|
{
|
||||||
if (!versionManager.IsPresent && s is Intro)
|
if (s is Intro && s.ChildScreen == null)
|
||||||
|
{
|
||||||
|
Add(versionManager);
|
||||||
versionManager.State = Visibility.Visible;
|
versionManager.State = Visibility.Visible;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user