Skip to content

Commit f940a3e

Browse files
committed
fix crashes on pattern change when number of track does ot match (fix #15)
1 parent ce1ef84 commit f940a3e

File tree

1 file changed

+12
-0
lines changed

1 file changed

+12
-0
lines changed

ui/ui.go

+12
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,8 @@ func (m mainModel) Init() tea.Cmd {
9191
}
9292

9393
func (m mainModel) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
94+
m.resetPatternState()
95+
9496
switch msg := msg.(type) {
9597

9698
case tea.WindowSizeMsg:
@@ -359,6 +361,16 @@ func (m mainModel) View() string {
359361
)
360362
}
361363

364+
// resetPattern ensures that we reset active track and step state
365+
// after a pattern chain if needed
366+
func (m *mainModel) resetPatternState() {
367+
if m.activeTrack >= len(m.seq.Tracks()) || m.activeStep >= len(m.seq.Tracks()[m.activeTrack].Steps()) {
368+
m.activeTrack = 0
369+
m.activeTrackPage = 0
370+
m.activeStep = 0
371+
}
372+
}
373+
362374
func (m *mainModel) getActiveTrack() sequencer.Track {
363375
return m.seq.Tracks()[m.activeTrack]
364376
}

0 commit comments

Comments
 (0)