From 1038855a8fb8b4a8c203f08e17cf63d184c31b72 Mon Sep 17 00:00:00 2001 From: leo Date: Tue, 3 Feb 2026 11:36:20 +0800 Subject: [PATCH] enhance: auto-select the first conflict file when no files are selected (#2053) Signed-off-by: leo --- src/ViewModels/WorkingCopy.cs | 10 ++++++++-- src/Views/WorkingCopy.axaml.cs | 2 +- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/ViewModels/WorkingCopy.cs b/src/ViewModels/WorkingCopy.cs index bc5f5f26..71efadea 100644 --- a/src/ViewModels/WorkingCopy.cs +++ b/src/ViewModels/WorkingCopy.cs @@ -264,8 +264,8 @@ namespace SourceGit.ViewModels return; HasUnsolvedConflicts = _cached.Find(x => x.IsConflicted) != null; - UpdateDetail(); UpdateInProgressState(); + UpdateDetail(); }); return; @@ -313,6 +313,12 @@ namespace SourceGit.ViewModels selectedStaged.Add(c); } + if (selectedUnstaged.Count == 0 && selectedStaged.Count == 0 && hasConflict) + { + var firstConflict = visibleUnstaged.Find(x => x.IsConflicted); + selectedUnstaged.Add(firstConflict); + } + Dispatcher.UIThread.Invoke(() => { if (cancellationToken.IsCancellationRequested) @@ -329,8 +335,8 @@ namespace SourceGit.ViewModels SelectedStaged = selectedStaged; _isLoadingData = false; - UpdateDetail(); UpdateInProgressState(); + UpdateDetail(); }); } diff --git a/src/Views/WorkingCopy.axaml.cs b/src/Views/WorkingCopy.axaml.cs index a0ebce77..deffa520 100644 --- a/src/Views/WorkingCopy.axaml.cs +++ b/src/Views/WorkingCopy.axaml.cs @@ -336,7 +336,7 @@ namespace SourceGit.Views menu.Items.Add(useTheirs); menu.Items.Add(useMine); - if (change.ConflictReason is Models.ConflictReason.BothAdded or Models.ConflictReason.BothModified) + if (change.ConflictReason is Models.ConflictReason.BothAdded or Models.ConflictReason.BothModified && !Directory.Exists(path)) { var mergeBuiltin = new MenuItem(); mergeBuiltin.Header = App.Text("ChangeCM.Merge");