diff --git a/osu.Game.Rulesets.Osu/Edit/OsuHitObjectComposer.cs b/osu.Game.Rulesets.Osu/Edit/OsuHitObjectComposer.cs index 8917a68efa..ed3fc34d94 100644 --- a/osu.Game.Rulesets.Osu/Edit/OsuHitObjectComposer.cs +++ b/osu.Game.Rulesets.Osu/Edit/OsuHitObjectComposer.cs @@ -354,6 +354,18 @@ namespace osu.Game.Rulesets.Osu.Edit protected override bool OnMouseDown(MouseDownEvent e) { + // Why is this logic here and not in `OsuSelectionHandler`? + // Because we only want to handle this toggle after all other right-click handling completes. + // + // Consider that input is handled from the most nested child first: + // + // ComposeScreen + // |- OsuContextMenuContainer // right click for context + // |- TimelineBlueprintContainer + // |- TimelineSelectionHandler + // |- (Osu)HitObjectComposer // right click for toggle new combo + // |- (Osu)EditorBlueprintContainer // right click for select + // |- (Osu)EditorSelectionHandler // right click for delete if (e.Button == MouseButton.Right) { var osuSelectionHandler = (OsuSelectionHandler)BlueprintContainer.SelectionHandler;