diff --git a/src/Resources/Locales/en_US.axaml b/src/Resources/Locales/en_US.axaml
index 9abb3bdcc..2e1579242 100644
--- a/src/Resources/Locales/en_US.axaml
+++ b/src/Resources/Locales/en_US.axaml
@@ -687,6 +687,7 @@
Use fixed tab width in titlebar
Use native window frame
DIFF/MERGE TOOL
+ Bind to double click
Diff Arguments
Available variables: $LOCAL, $REMOTE
Merge Arguments
diff --git a/src/ViewModels/Preferences.cs b/src/ViewModels/Preferences.cs
index 4803ec429..cf84e88ff 100644
--- a/src/ViewModels/Preferences.cs
+++ b/src/ViewModels/Preferences.cs
@@ -384,6 +384,12 @@ public string ShellOrTerminalArgs
}
}
+ public bool ExternalMergeToolBindToDoubleClick
+ {
+ get => _externalMergeToolBindToDoubleClick;
+ set => SetProperty(ref _externalMergeToolBindToDoubleClick, value);
+ }
+
public int ExternalMergeToolType
{
get => Native.OS.ExternalMergerType;
@@ -846,5 +852,6 @@ private bool RemoveInvalidRepositoriesRecursive(List collection)
private string _gitDefaultCloneDir = string.Empty;
private int _shellOrTerminalType = -1;
+ private bool _externalMergeToolBindToDoubleClick = false;
}
}
diff --git a/src/Views/CommitChanges.axaml b/src/Views/CommitChanges.axaml
index d14b14eca..19c6d76c3 100644
--- a/src/Views/CommitChanges.axaml
+++ b/src/Views/CommitChanges.axaml
@@ -58,6 +58,7 @@
EnableCompactFolders="{Binding Source={x:Static vm:Preferences.Instance}, Path=EnableCompactFoldersInChangesTree}"
Changes="{Binding VisibleChanges, Mode=OneWay}"
Selection="{Binding ChangeSelection, Mode=TwoWay}"
+ ChangeDoubleTapped="OnChangeDoubleTapped"
ContextRequested="OnChangeContextRequested"
KeyDown="OnChangeCollectionViewKeyDown"/>
diff --git a/src/Views/CommitChanges.axaml.cs b/src/Views/CommitChanges.axaml.cs
index 5ff13d593..8d948393e 100644
--- a/src/Views/CommitChanges.axaml.cs
+++ b/src/Views/CommitChanges.axaml.cs
@@ -4,6 +4,7 @@
using System.Text;
using Avalonia.Controls;
using Avalonia.Input;
+using Avalonia.Interactivity;
using Avalonia.Platform.Storage;
using Avalonia.VisualTree;
@@ -16,6 +17,17 @@ public CommitChanges()
InitializeComponent();
}
+ private void OnChangeDoubleTapped(object sender, RoutedEventArgs e)
+ {
+ if (ViewModels.Preferences.Instance.ExternalMergeToolBindToDoubleClick &&
+ DataContext is ViewModels.CommitDetail vm &&
+ sender is ChangeCollectionView { Selection: { Count: 1, HasFolder: false } selection })
+ {
+ vm.OpenChangeInMergeTool(selection.Changes[0]);
+ e.Handled = true;
+ }
+ }
+
private void OnChangeContextRequested(object sender, ContextRequestedEventArgs e)
{
e.Handled = true;
diff --git a/src/Views/Preferences.axaml b/src/Views/Preferences.axaml
index 5a19a248f..da68e4bd9 100644
--- a/src/Views/Preferences.axaml
+++ b/src/Views/Preferences.axaml
@@ -586,7 +586,7 @@
-
+
@@ -672,6 +672,10 @@
+
+