diff --git a/osu.Game/Screens/Play/HUD/HitErrorMeters/ColourHitErrorMeter.cs b/osu.Game/Screens/Play/HUD/HitErrorMeters/ColourHitErrorMeter.cs
index 00e6059541..5012be7249 100644
--- a/osu.Game/Screens/Play/HUD/HitErrorMeters/ColourHitErrorMeter.cs
+++ b/osu.Game/Screens/Play/HUD/HitErrorMeters/ColourHitErrorMeter.cs
@@ -53,13 +53,13 @@ public JudgementFlow()
LayoutEasing = Easing.OutQuint;
}
- public void Push(Color4 colour) => Schedule(() =>
+ public void Push(Color4 colour)
{
Add(new HitErrorCircle(colour, drawable_judgement_size));
if (Children.Count > max_available_judgements)
Children.FirstOrDefault(c => !c.IsRemoved)?.Remove();
- });
+ }
}
internal class HitErrorCircle : Container
diff --git a/osu.Game/Screens/Play/HUD/HitErrorMeters/HitErrorMeter.cs b/osu.Game/Screens/Play/HUD/HitErrorMeters/HitErrorMeter.cs
index c7b06a3a2c..16c23f07f5 100644
--- a/osu.Game/Screens/Play/HUD/HitErrorMeters/HitErrorMeter.cs
+++ b/osu.Game/Screens/Play/HUD/HitErrorMeters/HitErrorMeter.cs
@@ -40,9 +40,14 @@ protected override void LoadComplete()
if (gameplayClockContainer != null)
gameplayClockContainer.OnSeek += Clear;
- processor.NewJudgement += OnNewJudgement;
+ // Scheduled as meter implementations are likely going to change/add drawables when reacting to this.
+ processor.NewJudgement += j => Schedule(() => OnNewJudgement(j));
}
+ ///
+ /// Fired when a new judgement arrives.
+ ///
+ /// The new judgement.
protected abstract void OnNewJudgement(JudgementResult judgement);
protected Color4 GetColourForHitResult(HitResult result)