diff --git a/src/HexManiac.Core/ViewModels/EditorViewModel.cs b/src/HexManiac.Core/ViewModels/EditorViewModel.cs index 030ab8b6..dcc76984 100644 --- a/src/HexManiac.Core/ViewModels/EditorViewModel.cs +++ b/src/HexManiac.Core/ViewModels/EditorViewModel.cs @@ -984,6 +984,7 @@ namespace HavenSoft.HexManiac.Core.ViewModels { fileSystem.RemoveListenerForFile(viewPort.FileName, viewPort.ConsiderReload); using (new StubDisposable { Dispose = () => fileSystem.AddListenerToFile(viewPort.FileName, viewPort.ConsiderReload) }) { innerCommand.Execute(fileSystem); + UpdateRecentFiles(viewPort.FileName); } } else { if (tab is ViewPort vp) vp.MaxDiffSegmentCount = this.maxDiffSegCount; diff --git a/src/HexManiac.Tests/GeneralAppTests.cs b/src/HexManiac.Tests/GeneralAppTests.cs index 29cf01d8..9a77fab1 100644 --- a/src/HexManiac.Tests/GeneralAppTests.cs +++ b/src/HexManiac.Tests/GeneralAppTests.cs @@ -631,6 +631,21 @@ ApplicationVersion = '''0.1.0''' Assert.IsType(viewPort.Model); } + [Fact] + public void Tab_SaveAs_UpdatesRecentFiles() { + var filename = "Test.gba"; + + editor.Add(new StubViewPort { + FileName = filename, + SaveAs = new StubCommand { + CanExecute = arg => true, + }, + }); + + editor.SaveAs.Execute(); + Assert.Contains(filename, editor.RecentFiles); + } + private StubTabContent CreateClosableTab() { var tab = new StubTabContent(); var close = new StubCommand { CanExecute = arg => true };