|
|
@@ -16,6 +16,7 @@ namespace Avalonia.Input.GestureRecognizers
|
|
|
private bool _canHorizontallyScroll;
|
|
|
private bool _canVerticallyScroll;
|
|
|
private int _gestureId;
|
|
|
+ private int _scrollStartDistance = 30;
|
|
|
|
|
|
// Movement per second
|
|
|
private Vector _inertia;
|
|
|
@@ -38,6 +39,15 @@ namespace Avalonia.Input.GestureRecognizers
|
|
|
nameof(CanVerticallyScroll),
|
|
|
o => o.CanVerticallyScroll,
|
|
|
(o, v) => o.CanVerticallyScroll = v);
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// Defines the <see cref="ScrollStartDistance"/> property.
|
|
|
+ /// </summary>
|
|
|
+ public static readonly DirectProperty<ScrollGestureRecognizer, int> ScrollStartDistanceProperty =
|
|
|
+ AvaloniaProperty.RegisterDirect<ScrollGestureRecognizer, int>(
|
|
|
+ nameof(ScrollStartDistance),
|
|
|
+ o => o.ScrollStartDistance,
|
|
|
+ (o, v) => o.ScrollStartDistance = v);
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets a value indicating whether the content can be scrolled horizontally.
|
|
|
@@ -56,6 +66,15 @@ namespace Avalonia.Input.GestureRecognizers
|
|
|
get => _canVerticallyScroll;
|
|
|
set => SetAndRaise(CanVerticallyScrollProperty, ref _canVerticallyScroll, value);
|
|
|
}
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// Gets or sets a value indicating the distance to move the pointer before scrolling is started
|
|
|
+ /// </summary>
|
|
|
+ public int ScrollStartDistance
|
|
|
+ {
|
|
|
+ get => _scrollStartDistance;
|
|
|
+ set => SetAndRaise(ScrollStartDistanceProperty, ref _scrollStartDistance, value);
|
|
|
+ }
|
|
|
|
|
|
|
|
|
public void Initialize(IInputElement target, IGestureRecognizerActionsDispatcher actions)
|
|
|
@@ -75,9 +94,6 @@ namespace Avalonia.Input.GestureRecognizers
|
|
|
_trackedRootPoint = e.GetPosition((Visual?)_target);
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
- // Arbitrary chosen value, probably need to move that to platform settings or something
|
|
|
- private const double ScrollStartDistance = 30;
|
|
|
|
|
|
// Pixels per second speed that is considered to be the stop of inertial scroll
|
|
|
private const double InertialScrollSpeedEnd = 5;
|