From 34a030e3bedfb95539d557166a6ff0d59f9f83de Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Tue, 7 Feb 2017 22:19:36 +0900 Subject: [PATCH] Fix race conditions causing menu transitions to look wrong when executed in very fast succession. --- osu.Game/Screens/Menu/Button.cs | 4 ++-- osu.Game/Screens/Menu/ButtonSystem.cs | 6 ++++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/osu.Game/Screens/Menu/Button.cs b/osu.Game/Screens/Menu/Button.cs index a2e088adf7..7e1db73205 100644 --- a/osu.Game/Screens/Menu/Button.cs +++ b/osu.Game/Screens/Menu/Button.cs @@ -272,11 +272,11 @@ private void trigger() { sampleClick.Play(); + clickAction?.Invoke(); + boxHoverLayer.ClearTransformations(); boxHoverLayer.Alpha = 0.9f; boxHoverLayer.FadeOut(800, EasingTypes.OutExpo); - - clickAction?.Invoke(); } public override bool HandleInput => state != ButtonState.Exploded && box.Scale.X >= 0.8f; diff --git a/osu.Game/Screens/Menu/ButtonSystem.cs b/osu.Game/Screens/Menu/ButtonSystem.cs index 0449128a94..67802ab2f3 100644 --- a/osu.Game/Screens/Menu/ButtonSystem.cs +++ b/osu.Game/Screens/Menu/ButtonSystem.cs @@ -146,7 +146,7 @@ protected override bool OnKeyDown(InputState state, KeyDownEventArgs args) State = MenuState.Initial; return true; case MenuState.Play: - State = MenuState.TopLevel; + backButton.TriggerClick(); return true; } @@ -216,7 +216,7 @@ public MenuState State { case MenuState.Initial: buttonAreaBackground.ScaleTo(Vector2.One, 500, EasingTypes.Out); - buttonArea.FadeOut(500); + buttonArea.FadeOut(300); osuLogo.Delay(150); osuLogo.MoveTo(Vector2.Zero, 800, EasingTypes.OutExpo); @@ -229,6 +229,8 @@ public MenuState State b.State = ButtonState.Contracted; break; case MenuState.TopLevel: + buttonArea.Flush(true); + buttonAreaBackground.ScaleTo(Vector2.One, 200, EasingTypes.Out); osuLogo.MoveTo(buttonFlow.DrawPosition, 200, EasingTypes.In);