fix: hightlight not working the first time clicking the first line (#448)

This commit is contained in:
leo 2024-09-10 12:03:07 +08:00
parent f42ddd8cee
commit f5b8bc472a
No known key found for this signature in database

View file

@ -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))