From 959805d63c32cb36739efc2e91ec0de3427e1c06 Mon Sep 17 00:00:00 2001 From: leo Date: Tue, 27 Aug 2024 14:47:20 +0800 Subject: [PATCH] feature: auto scrolling while seleting text in commit message (#394) --- src/Views/CommitMessagePresenter.cs | 18 +++++++++++++++++- src/Views/RevisionFileContentViewer.axaml | 10 ++++++---- 2 files changed, 23 insertions(+), 5 deletions(-) diff --git a/src/Views/CommitMessagePresenter.cs b/src/Views/CommitMessagePresenter.cs index 46b53778..55e1dfb1 100644 --- a/src/Views/CommitMessagePresenter.cs +++ b/src/Views/CommitMessagePresenter.cs @@ -114,7 +114,23 @@ namespace SourceGit.Views { base.OnPointerMoved(e); - if (e.Pointer.Captured == null && _matches != null) + if (e.Pointer.Captured == this) + { + var relativeSelfY = e.GetPosition(this).Y; + if (relativeSelfY <= 0 || relativeSelfY > Bounds.Height) + return; + + var scrollViewer = this.FindAncestorOfType(); + if (scrollViewer != null) + { + var relativeY = e.GetPosition(scrollViewer).Y; + if (relativeY <= 8) + scrollViewer.LineUp(); + else if (relativeY >= scrollViewer.Bounds.Height - 8) + scrollViewer.LineDown(); + } + } + else if (_matches != null) { var point = e.GetPosition(this) - new Point(Padding.Left, Padding.Top); var x = Math.Min(Math.Max(point.X, 0), Math.Max(TextLayout.WidthIncludingTrailingWhitespace, 0)); diff --git a/src/Views/RevisionFileContentViewer.axaml b/src/Views/RevisionFileContentViewer.axaml index eef7605c..67ba5913 100644 --- a/src/Views/RevisionFileContentViewer.axaml +++ b/src/Views/RevisionFileContentViewer.axaml @@ -48,10 +48,12 @@ - - - - + + + + + +