mirror of
https://github.com/bggRGjQaUbCoE/PiliPlus.git
synced 2026-05-31 08:08:19 +08:00
@@ -22,31 +22,40 @@ class CustomHorizontalDragGestureRecognizer
|
|||||||
PointerDeviceKind pointerDeviceKind,
|
PointerDeviceKind pointerDeviceKind,
|
||||||
double? deviceTouchSlop,
|
double? deviceTouchSlop,
|
||||||
) {
|
) {
|
||||||
return globalDistanceMoved.abs() > _computeHitSlop(pointerDeviceKind) &&
|
return _computeHitSlop(
|
||||||
_cacl(_initialPosition!, lastPosition.global, gestureSettings);
|
globalDistanceMoved.abs(),
|
||||||
}
|
gestureSettings,
|
||||||
|
pointerDeviceKind,
|
||||||
static bool _cacl(
|
_initialPosition!,
|
||||||
Offset initialPosition,
|
lastPosition.global,
|
||||||
Offset lastPosition,
|
);
|
||||||
DeviceGestureSettings? gestureSettings,
|
|
||||||
) {
|
|
||||||
final offset = lastPosition - initialPosition;
|
|
||||||
return offset.dx.abs() > offset.dy.abs() * 3;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
double touchSlopH = Pref.touchSlopH;
|
double touchSlopH = Pref.touchSlopH;
|
||||||
|
|
||||||
double _computeHitSlop(PointerDeviceKind kind) {
|
bool _computeHitSlop(
|
||||||
|
double globalDistanceMoved,
|
||||||
|
DeviceGestureSettings? settings,
|
||||||
|
PointerDeviceKind kind,
|
||||||
|
Offset initialPosition,
|
||||||
|
Offset lastPosition,
|
||||||
|
) {
|
||||||
switch (kind) {
|
switch (kind) {
|
||||||
case PointerDeviceKind.mouse:
|
case PointerDeviceKind.mouse:
|
||||||
return kPrecisePointerHitSlop;
|
return globalDistanceMoved > kPrecisePointerHitSlop;
|
||||||
case PointerDeviceKind.stylus:
|
case PointerDeviceKind.stylus:
|
||||||
case PointerDeviceKind.invertedStylus:
|
case PointerDeviceKind.invertedStylus:
|
||||||
case PointerDeviceKind.unknown:
|
case PointerDeviceKind.unknown:
|
||||||
case PointerDeviceKind.touch:
|
case PointerDeviceKind.touch:
|
||||||
|
return globalDistanceMoved > touchSlopH &&
|
||||||
|
_cacl(initialPosition, lastPosition);
|
||||||
case PointerDeviceKind.trackpad:
|
case PointerDeviceKind.trackpad:
|
||||||
return touchSlopH;
|
return globalDistanceMoved > (settings?.touchSlop ?? kTouchSlop);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool _cacl(Offset initialPosition, Offset lastPosition) {
|
||||||
|
final offset = lastPosition - initialPosition;
|
||||||
|
return offset.dx.abs() > offset.dy.abs() * 3;
|
||||||
|
}
|
||||||
|
|||||||
@@ -127,7 +127,7 @@ class _HistoryPageState extends State<HistoryPage>
|
|||||||
],
|
],
|
||||||
),
|
),
|
||||||
Expanded(
|
Expanded(
|
||||||
child: TabBarView(
|
child: TabBarView<CustomHorizontalDragGestureRecognizer>(
|
||||||
physics: enableMultiSelect
|
physics: enableMultiSelect
|
||||||
? const NeverScrollableScrollPhysics()
|
? const NeverScrollableScrollPhysics()
|
||||||
: const CustomTabBarViewScrollPhysics(),
|
: const CustomTabBarViewScrollPhysics(),
|
||||||
|
|||||||
@@ -134,7 +134,7 @@ class _LaterPageState extends State<LaterPage>
|
|||||||
},
|
},
|
||||||
),
|
),
|
||||||
Expanded(
|
Expanded(
|
||||||
child: TabBarView(
|
child: TabBarView<CustomHorizontalDragGestureRecognizer>(
|
||||||
physics: enableMultiSelect
|
physics: enableMultiSelect
|
||||||
? const NeverScrollableScrollPhysics()
|
? const NeverScrollableScrollPhysics()
|
||||||
: const CustomTabBarViewScrollPhysics(),
|
: const CustomTabBarViewScrollPhysics(),
|
||||||
|
|||||||
Reference in New Issue
Block a user