Skip to content

Commit 4541095

Browse files
committed
fix: selection range is not cleared while scrolling text diff view since commit 7caa03a
Signed-off-by: leo <[email protected]>
1 parent 8bb9579 commit 4541095

File tree

1 file changed

+9
-14
lines changed

1 file changed

+9
-14
lines changed

src/Views/TextDiffView.axaml.cs

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -565,7 +565,6 @@ public void GotoFirstChange()
565565
ScrollToLine(prev.Start);
566566
}
567567
}
568-
// NOTE: Not implemented (button hidden) for non-block navigation.
569568
}
570569

571570
public void GotoPrevChange()
@@ -678,7 +677,6 @@ public void GotoLastChange()
678677
ScrollToLine(next.Start);
679678
}
680679
}
681-
// NOTE: Not implemented (button hidden) for non-block navigation.
682680
}
683681

684682
public override void Render(DrawingContext context)
@@ -1229,15 +1227,15 @@ protected override void OnLoaded(RoutedEventArgs e)
12291227
if (scroller != null)
12301228
{
12311229
scroller.Bind(ScrollViewer.OffsetProperty, new Binding("ScrollOffset", BindingMode.TwoWay));
1232-
scroller.GotFocus += OnTextViewScrollGotFocus;
1230+
scroller.ScrollChanged += OnTextViewScrollChanged;
12331231
}
12341232
}
12351233

12361234
protected override void OnUnloaded(RoutedEventArgs e)
12371235
{
12381236
var scroller = this.FindDescendantOfType<ScrollViewer>();
12391237
if (scroller != null)
1240-
scroller.GotFocus -= OnTextViewScrollGotFocus;
1238+
scroller.ScrollChanged -= OnTextViewScrollChanged;
12411239

12421240
base.OnUnloaded(e);
12431241
}
@@ -1274,9 +1272,9 @@ protected override void OnDataContextChanged(EventArgs e)
12741272
GC.Collect();
12751273
}
12761274

1277-
private void OnTextViewScrollGotFocus(object sender, GotFocusEventArgs e)
1275+
private void OnTextViewScrollChanged(object sender, ScrollChangedEventArgs e)
12781276
{
1279-
if (EnableChunkSelection && !TextArea.IsPointerOver)
1277+
if (sender is ScrollViewer { IsExpanded: true, IsPointerOver: true } scroller)
12801278
TrySetChunk(null);
12811279
}
12821280
}
@@ -1446,7 +1444,6 @@ protected override void OnLoaded(RoutedEventArgs e)
14461444
_scrollViewer = this.FindDescendantOfType<ScrollViewer>();
14471445
if (_scrollViewer != null)
14481446
{
1449-
_scrollViewer.GotFocus += OnTextViewScrollGotFocus;
14501447
_scrollViewer.ScrollChanged += OnTextViewScrollChanged;
14511448
_scrollViewer.Bind(ScrollViewer.OffsetProperty, new Binding("SyncScrollOffset", BindingMode.OneWay));
14521449
}
@@ -1457,7 +1454,6 @@ protected override void OnUnloaded(RoutedEventArgs e)
14571454
if (_scrollViewer != null)
14581455
{
14591456
_scrollViewer.ScrollChanged -= OnTextViewScrollChanged;
1460-
_scrollViewer.GotFocus -= OnTextViewScrollGotFocus;
14611457
_scrollViewer = null;
14621458
}
14631459

@@ -1495,16 +1491,15 @@ protected override void OnDataContextChanged(EventArgs e)
14951491
}
14961492
}
14971493

1498-
private void OnTextViewScrollGotFocus(object sender, GotFocusEventArgs e)
1499-
{
1500-
if (EnableChunkSelection && !TextArea.IsPointerOver)
1501-
TrySetChunk(null);
1502-
}
1503-
15041494
private void OnTextViewScrollChanged(object sender, ScrollChangedEventArgs e)
15051495
{
15061496
if (IsPointerOver && DataContext is ViewModels.TwoSideTextDiff diff)
1497+
{
15071498
diff.SyncScrollOffset = _scrollViewer?.Offset ?? Vector.Zero;
1499+
1500+
if (sender is ScrollViewer { IsExpanded: true, IsPointerOver: true } scroller )
1501+
TrySetChunk(null);
1502+
}
15081503
}
15091504

15101505
private ScrollViewer _scrollViewer = null;

0 commit comments

Comments
 (0)