aves/lib/widgets/common/behaviour/sloppy_scroll_physics.dart
Thibault Deckers 7b9213e82e fixes, upgrades
2023-10-22 23:51:05 +03:00

30 lines
903 B
Dart

import 'package:flutter/gestures.dart';
import 'package:flutter/widgets.dart';
// TODO TLAD merge with `MagnifierScrollerPhysics`
class SloppyScrollPhysics extends ScrollPhysics {
final DeviceGestureSettings? gestureSettings;
// in [0, 1]
// 0: most reactive but will not let Magnifier recognizers accept gestures
// 1: less reactive but gives the most leeway to Magnifier recognizers
final double touchSlopFactor;
const SloppyScrollPhysics({
required this.gestureSettings,
this.touchSlopFactor = 1,
super.parent,
});
@override
SloppyScrollPhysics applyTo(ScrollPhysics? ancestor) {
return SloppyScrollPhysics(
gestureSettings: gestureSettings,
touchSlopFactor: touchSlopFactor,
parent: buildParent(ancestor),
);
}
@override
double get dragStartDistanceMotionThreshold => (gestureSettings?.touchSlop ?? kTouchSlop) * touchSlopFactor;
}