improve slide gesture patch

Signed-off-by: dom <githubaccount56556@proton.me>
This commit is contained in:
dom
2026-05-02 10:43:29 +08:00
parent a91a90b7da
commit 09c73d3c87
2 changed files with 94 additions and 29 deletions

View File

@@ -1,29 +1,25 @@
diff --git a/lib/pages/common/slide/common_slide_page.dart b/lib/pages/common/slide/common_slide_page.dart
index 58ba68b7c..159f5ba77 100644
index 58ba68b7c..a6bb398ac 100644
--- a/lib/pages/common/slide/common_slide_page.dart
+++ b/lib/pages/common/slide/common_slide_page.dart
@@ -142,6 +142,24 @@ class SlideDragGestureRecognizer extends HorizontalDragGestureRecognizer {
@@ -3,7 +3,8 @@ import 'dart:math' show max;
import 'package:PiliPlus/common/widgets/flutter/layout_builder.dart';
import 'package:PiliPlus/common/widgets/gesture/horizontal_drag_gesture_recognizer.dart';
import 'package:PiliPlus/utils/storage_pref.dart';
-import 'package:flutter/gestures.dart' show HorizontalDragGestureRecognizer;
+import 'package:flutter/gestures.dart'
+ show HorizontalDragGestureRecognizer, DeviceGestureSettings;
import 'package:flutter/material.dart' hide LayoutBuilder;
import 'package:get/get.dart';
@@ -142,6 +143,10 @@ class SlideDragGestureRecognizer extends HorizontalDragGestureRecognizer {
bool isPointerAllowed(PointerEvent event) {
return isDxAllowed(event.localPosition.dx) && super.isPointerAllowed(event);
}
+
+ bool _hasAccepted = false;
+
+ @override
+ void handleEvent(PointerEvent event) {
+ if (event is PointerMoveEvent && !_hasAccepted) {
+ _hasAccepted = true;
+ resolve(.accepted);
+ return;
+ }
+ super.handleEvent(event);
+ }
+
+ @override
+ void stopTrackingPointer(int pointer) {
+ _hasAccepted = false;
+ super.stopTrackingPointer(pointer);
+ }
+ DeviceGestureSettings get gestureSettings =>
+ const DeviceGestureSettings(touchSlop: 5.0);
}
class TabBarDragGestureRecognizer