diff --git a/common/src/view.rs b/common/src/view.rs index 2438ae3..0aeafc1 100644 --- a/common/src/view.rs +++ b/common/src/view.rs @@ -187,6 +187,8 @@ impl View { self.dt = [0, dt]; // Reset the notes. self.dn = self.initial_dn; + // Single track view. + self.single_track = true; } /// Returns the note delta. diff --git a/io/src/lib.rs b/io/src/lib.rs index 470f089..94fa381 100644 --- a/io/src/lib.rs +++ b/io/src/lib.rs @@ -282,15 +282,22 @@ impl IO { } // New file. if input.happened(&InputEvent::NewFile) { + // This prevents the previous file from being overwritten. paths_state.saves.filename = None; // Stop playing music. conn.on_new_file(state); // Reset the music. state.music = Music::default(); + // Clear the selection. + state.select_mode = SelectMode::Single(None); // Reset the view. state.view.reset(); // Reset the time. state.time.reset(); + // Clear the undo/redo stacks. + self.undo.clear(); + self.redo.clear(); + state.unsaved_changes = false; } // Open file. else if input.happened(&InputEvent::OpenFile) {