diff --git a/osu.Game/GameModes/Menu/ButtonSystem.cs b/osu.Game/GameModes/Menu/ButtonSystem.cs index dcb13dbbab..87a78c335d 100644 --- a/osu.Game/GameModes/Menu/ButtonSystem.cs +++ b/osu.Game/GameModes/Menu/ButtonSystem.cs @@ -125,6 +125,15 @@ namespace osu.Game.GameModes.Menu protected override bool OnKeyDown(InputState state, KeyDownEventArgs args) { + if (args.Key == Key.Escape) + { + if (State == MenuState.Initial) + return false; + + State = MenuState.Initial; + return true; + } + osuLogo.TriggerClick(state); return true; } diff --git a/osu.Game/GameModes/Menu/Intro.cs b/osu.Game/GameModes/Menu/Intro.cs index 5bc41572e3..4a7e338cfe 100644 --- a/osu.Game/GameModes/Menu/Intro.cs +++ b/osu.Game/GameModes/Menu/Intro.cs @@ -66,5 +66,16 @@ namespace osu.Game.GameModes.Menu Content.FadeOut(300); base.OnSuspending(next); } + + protected override void OnResuming(GameMode last) + { + //this is an exit + Game.Scheduler.AddDelayed(delegate + { + Game.Exit(); + }, 300); + + base.OnResuming(last); + } } } diff --git a/osu.Game/GameModes/Menu/MainMenu.cs b/osu.Game/GameModes/Menu/MainMenu.cs index 962dde2fbc..5b8900a5e5 100644 --- a/osu.Game/GameModes/Menu/MainMenu.cs +++ b/osu.Game/GameModes/Menu/MainMenu.cs @@ -49,7 +49,7 @@ namespace osu.Game.GameModes.Menu OnTest = delegate { Push(new TestBrowser()); }, OnExit = delegate { Game.Scheduler.AddDelayed(delegate { - Game.Host.Exit(); + Exit(); }, ButtonSystem.EXIT_DELAY); }, OnSettings = delegate {