From bb52b0d06ba04f0daf84e03c5cb3cfae0220bf63 Mon Sep 17 00:00:00 2001 From: leo Date: Wed, 27 Aug 2025 17:08:36 +0800 Subject: [PATCH] feature: allow to scroll text diff view to clicked position in minimap bar (#1679) Signed-off-by: leo --- src/Views/TextDiffView.axaml | 2 +- src/Views/TextDiffView.axaml.cs | 44 +++++++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+), 1 deletion(-) diff --git a/src/Views/TextDiffView.axaml b/src/Views/TextDiffView.axaml index d7a9e43e..5717a8be 100644 --- a/src/Views/TextDiffView.axaml +++ b/src/Views/TextDiffView.axaml @@ -12,7 +12,7 @@ - + = startY && pressedY <= endY) + return; + + var line = Math.Max(1, Math.Min(total, (int)Math.Ceiling(pressedY * total / height))); + this.FindAncestorOfType()?.ScrollToLine(line); + e.Handled = true; + } + private void RenderSingleSide(DrawingContext context, List lines, double x, double width) { var total = lines.Count; @@ -1414,11 +1452,17 @@ namespace SourceGit.Views get => GetValue(SelectedChunkProperty); set => SetValue(SelectedChunkProperty, value); } + public TextDiffView() { InitializeComponent(); } + public void ScrollToLine(int line) + { + this.FindDescendantOfType()?.ScrollToLine(line); + } + protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) { base.OnPropertyChanged(change);