diff --git a/src/Views/Blame.axaml.cs b/src/Views/Blame.axaml.cs index ddd001dd..68e14de5 100644 --- a/src/Views/Blame.axaml.cs +++ b/src/Views/Blame.axaml.cs @@ -233,6 +233,7 @@ namespace SourceGit.Views TextArea.LeftMargins.Add(new VerticalSeperatorMargin(this)); TextArea.LeftMargins.Add(new CommitInfoMargin(this) { Margin = new Thickness(8, 0) }); TextArea.LeftMargins.Add(new VerticalSeperatorMargin(this)); + TextArea.Caret.PositionChanged += OnTextAreaCaretPositionChanged; TextArea.LayoutUpdated += OnTextAreaLayoutUpdated; TextArea.PointerWheelChanged += OnTextAreaPointerWheelChanged; TextArea.TextView.ContextRequested += OnTextViewContextRequested; @@ -279,7 +280,9 @@ namespace SourceGit.Views base.OnUnloaded(e); TextArea.LeftMargins.Clear(); + TextArea.Caret.PositionChanged -= OnTextAreaCaretPositionChanged; TextArea.LayoutUpdated -= OnTextAreaLayoutUpdated; + TextArea.PointerWheelChanged -= OnTextAreaPointerWheelChanged; TextArea.TextView.ContextRequested -= OnTextViewContextRequested; TextArea.TextView.VisualLinesChanged -= OnTextViewVisualLinesChanged; @@ -312,7 +315,7 @@ namespace SourceGit.Views } } - private void OnTextAreaLayoutUpdated(object sender, EventArgs e) + private void OnTextAreaCaretPositionChanged(object sender, EventArgs e) { if (!TextArea.IsFocused) return; @@ -325,6 +328,12 @@ namespace SourceGit.Views InvalidateVisual(); } + private void OnTextAreaLayoutUpdated(object sender, EventArgs e) + { + if (TextArea.IsFocused) + InvalidateVisual(); + } + private void OnTextAreaPointerWheelChanged(object sender, PointerWheelEventArgs e) { if (!TextArea.IsFocused && !string.IsNullOrEmpty(_highlight))