diff --git a/osu.Game/Overlays/DialogOverlay.cs b/osu.Game/Overlays/DialogOverlay.cs index 7f2db9f03f..259c6068e0 100644 --- a/osu.Game/Overlays/DialogOverlay.cs +++ b/osu.Game/Overlays/DialogOverlay.cs @@ -57,7 +57,12 @@ namespace osu.Game.Overlays // a DialogOverlay instance has finished loading. CurrentDialog = dialog; - Scheduler.Add(() => + if (IsLoaded) + Scheduler.Add(pushDialog, false); + else + Schedule(pushDialog); + + void pushDialog() { // if any existing dialog is being displayed, dismiss it before showing a new one. lastDialog?.Hide(); @@ -65,7 +70,7 @@ namespace osu.Game.Overlays dialogContainer.Add(dialog); Show(); - }, !IsLoaded); + } } public override bool IsPresent => Scheduler.HasPendingTasks || dialogContainer.Children.Count > 0;