diff --git a/GitUI/CommandsDialogs/FormBrowse.cs b/GitUI/CommandsDialogs/FormBrowse.cs index 0b367c7fd1c..f09c76fd5b5 100644 --- a/GitUI/CommandsDialogs/FormBrowse.cs +++ b/GitUI/CommandsDialogs/FormBrowse.cs @@ -202,6 +202,7 @@ public FormBrowse(GitUICommands commands, string filter, ObjectId? selectedId = repoObjectsTree.Initialize(_aheadBehindDataProvider, _filterBranchHelper, RevisionGrid, RevisionGrid, RevisionGrid); toolStripBranchFilterComboBox.DropDown += toolStripBranches_DropDown_ResizeDropDownWidth; revisionDiff.Bind(RevisionGrid, fileTree, () => RequestRefresh()); + fileTree.Bind(() => RequestRefresh()); var repositoryDescriptionProvider = new RepositoryDescriptionProvider(new GitDirectoryResolver()); _appTitleGenerator = new AppTitleGenerator(repositoryDescriptionProvider); @@ -1543,6 +1544,7 @@ private void StashToolStripMenuItemClick(object sender, EventArgs e) private void ResetToolStripMenuItem_Click(object sender, EventArgs e) { UICommands.StartResetChangesDialog(this); + RequestRefresh(); revisionDiff.RefreshArtificial(); } @@ -3225,6 +3227,7 @@ private void undoLastCommitToolStripMenuItem_Click(object sender, EventArgs e) var args = GitCommandHelpers.ResetCmd(ResetMode.Soft, "HEAD~1"); Module.GitExecutable.GetOutput(args); refreshToolStripMenuItem.PerformClick(); + RequestRefresh(); } } diff --git a/GitUI/CommandsDialogs/RevisionFileTreeControl.cs b/GitUI/CommandsDialogs/RevisionFileTreeControl.cs index 2cacac52cf8..878c034088c 100644 --- a/GitUI/CommandsDialogs/RevisionFileTreeControl.cs +++ b/GitUI/CommandsDialogs/RevisionFileTreeControl.cs @@ -54,6 +54,7 @@ public partial class RevisionFileTreeControl : GitModuleControl private GitRevision? _revision; private readonly RememberFileContextMenuController _rememberFileContextMenuController = RememberFileContextMenuController.Default; + private Action? _refreshGitStatus; public RevisionFileTreeControl() { @@ -67,6 +68,11 @@ public RevisionFileTreeControl() new FileAssociatedIconProvider()); } + public void Bind(Action refreshGitStatus) + { + _refreshGitStatus = refreshGitStatus; + } + public void ExpandToFile(string filePath) { if (string.IsNullOrWhiteSpace(filePath)) @@ -490,12 +496,15 @@ private void findToolStripMenuItem_Click(object sender, EventArgs e) private void editCheckedOutFileToolStripMenuItem_Click(object sender, EventArgs e) { - if (tvGitTree.SelectedNode?.Tag is GitItem gitItem && gitItem.ObjectType == GitObjectType.Blob) + if (tvGitTree.SelectedNode?.Tag is not GitItem gitItem || gitItem.ObjectType != GitObjectType.Blob) { - var fileName = _fullPathResolver.Resolve(gitItem.FileName); - Validates.NotNull(fileName); - UICommands.StartFileEditorDialog(fileName); + return; } + + var fileName = _fullPathResolver.Resolve(gitItem.FileName); + Validates.NotNull(fileName); + UICommands.StartFileEditorDialog(fileName); + _refreshGitStatus?.Invoke(); } private void expandAllStripMenuItem_Click(object sender, EventArgs e)