diff --git a/osu.Game/Screens/Edit/Compose/Components/SelectionHandler.cs b/osu.Game/Screens/Edit/Compose/Components/SelectionHandler.cs
index fdf8dbe44e..7808d7a5bc 100644
--- a/osu.Game/Screens/Edit/Compose/Components/SelectionHandler.cs
+++ b/osu.Game/Screens/Edit/Compose/Components/SelectionHandler.cs
@@ -239,10 +239,7 @@ namespace osu.Game.Screens.Edit.Compose.Components
private void deleteSelected()
{
ChangeHandler?.BeginChange();
-
- foreach (var h in selectedBlueprints.ToList())
- EditorBeatmap?.Remove(h.HitObject);
-
+ EditorBeatmap?.RemoveRange(selectedBlueprints.Select(b => b.HitObject));
ChangeHandler?.EndChange();
}
diff --git a/osu.Game/Screens/Edit/Editor.cs b/osu.Game/Screens/Edit/Editor.cs
index 4b4266d049..3c5cbf30e9 100644
--- a/osu.Game/Screens/Edit/Editor.cs
+++ b/osu.Game/Screens/Edit/Editor.cs
@@ -484,8 +484,7 @@ namespace osu.Game.Screens.Edit
protected void Cut()
{
Copy();
- foreach (var h in editorBeatmap.SelectedHitObjects.ToArray())
- editorBeatmap.Remove(h);
+ editorBeatmap.RemoveRange(editorBeatmap.SelectedHitObjects.ToArray());
}
protected void Copy()
diff --git a/osu.Game/Screens/Edit/EditorBeatmap.cs b/osu.Game/Screens/Edit/EditorBeatmap.cs
index 549423dfb8..1357f12055 100644
--- a/osu.Game/Screens/Edit/EditorBeatmap.cs
+++ b/osu.Game/Screens/Edit/EditorBeatmap.cs
@@ -99,8 +99,11 @@ namespace osu.Game.Screens.Edit
/// The s to add.
public void AddRange(IEnumerable hitObjects)
{
- foreach (var h in hitObjects)
- Add(h);
+ ApplyBatchChanges(_ =>
+ {
+ foreach (var h in hitObjects)
+ Add(h);
+ });
}
///
@@ -166,6 +169,19 @@ namespace osu.Game.Screens.Edit
return true;
}
+ ///
+ /// Removes a collection of s to this .
+ ///
+ /// The s to remove.
+ public void RemoveRange(IEnumerable hitObjects)
+ {
+ ApplyBatchChanges(_ =>
+ {
+ foreach (var h in hitObjects)
+ Remove(h);
+ });
+ }
+
///
/// Finds the index of a in this .
///
@@ -237,18 +253,12 @@ namespace osu.Game.Screens.Edit
}
batchPendingInserts.Clear();
-
- isBatchApplying = false;
}
///
/// Clears all from this .
///
- public void Clear()
- {
- foreach (var h in HitObjects.ToArray())
- Remove(h);
- }
+ public void Clear() => RemoveRange(HitObjects.ToArray());
protected override void Update()
{