From a37990a7fa170695ad6c6eb075081eb57be372ef Mon Sep 17 00:00:00 2001 From: "5684185+vsariola@users.noreply.github.com" <5684185+vsariola@users.noreply.github.com> Date: Sat, 1 Nov 2025 01:06:34 +0200 Subject: [PATCH] feat(tracker): make clear unit action clear all selected units --- tracker/action.go | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/tracker/action.go b/tracker/action.go index 9a30337..81b6c62 100644 --- a/tracker/action.go +++ b/tracker/action.go @@ -290,9 +290,12 @@ func (m *ClearUnit) Enabled() bool { } func (m *ClearUnit) Do() { defer (*Model)(m).change("DeleteUnitAction", PatchChange, MajorChange)() - m.d.UnitIndex = max(min(m.d.UnitIndex, len(m.d.Song.Patch[m.d.InstrIndex].Units)-1), 0) - m.d.Song.Patch[m.d.InstrIndex].Units[m.d.UnitIndex] = sointu.Unit{} - m.d.Song.Patch[m.d.InstrIndex].Units[m.d.UnitIndex].ID = (*Model)(m).maxID() + 1 + l := ((*Model)(m)).Units().List() + r := l.listRange() + for i := r.Start; i < r.End; i++ { + m.d.Song.Patch[m.d.InstrIndex].Units[i] = sointu.Unit{} + m.d.Song.Patch[m.d.InstrIndex].Units[i].ID = (*Model)(m).maxID() + 1 + } } // Undo