fix(tracker): set PrevUndoType to "" when undoing and redoing

This commit is contained in:
5684185+vsariola@users.noreply.github.com 2023-10-08 15:59:33 +03:00
parent e5691d670a
commit 61ebd89da0

View File

@ -985,6 +985,7 @@ func (m *Model) Undo() {
m.setSongNoUndo(m.d.UndoStack[len(m.d.UndoStack)-1]) m.setSongNoUndo(m.d.UndoStack[len(m.d.UndoStack)-1])
m.d.UndoStack = m.d.UndoStack[:len(m.d.UndoStack)-1] m.d.UndoStack = m.d.UndoStack[:len(m.d.UndoStack)-1]
m.limitUndoRedoLengths() m.limitUndoRedoLengths()
m.d.PrevUndoType = ""
} }
func (m *Model) CanUndo() bool { func (m *Model) CanUndo() bool {
@ -998,6 +999,7 @@ func (m *Model) ClearUndoHistory() {
if len(m.d.RedoStack) > 0 { if len(m.d.RedoStack) > 0 {
m.d.RedoStack = m.d.RedoStack[:0] m.d.RedoStack = m.d.RedoStack[:0]
} }
m.d.PrevUndoType = ""
} }
func (m *Model) Redo() { func (m *Model) Redo() {
@ -1008,6 +1010,7 @@ func (m *Model) Redo() {
m.setSongNoUndo(m.d.RedoStack[len(m.d.RedoStack)-1]) m.setSongNoUndo(m.d.RedoStack[len(m.d.RedoStack)-1])
m.d.RedoStack = m.d.RedoStack[:len(m.d.RedoStack)-1] m.d.RedoStack = m.d.RedoStack[:len(m.d.RedoStack)-1]
m.limitUndoRedoLengths() m.limitUndoRedoLengths()
m.d.PrevUndoType = ""
} }
func (m *Model) CanRedo() bool { func (m *Model) CanRedo() bool {
@ -1375,11 +1378,11 @@ func (m *Model) notifySamplesPerRowChange() {
} }
func (m *Model) saveUndo(undoType string, undoSkipping int) { func (m *Model) saveUndo(undoType string, undoSkipping int) {
m.d.ChangedSinceSave = true
if m.d.PrevUndoType == undoType && m.d.UndoSkipCounter < undoSkipping { if m.d.PrevUndoType == undoType && m.d.UndoSkipCounter < undoSkipping {
m.d.UndoSkipCounter++ m.d.UndoSkipCounter++
return return
} }
m.d.ChangedSinceSave = true
m.d.PrevUndoType = undoType m.d.PrevUndoType = undoType
m.d.UndoSkipCounter = 0 m.d.UndoSkipCounter = 0
m.d.UndoStack = append(m.d.UndoStack, m.d.Song.Copy()) m.d.UndoStack = append(m.d.UndoStack, m.d.Song.Copy())