opt image recognizer

Signed-off-by: dom <githubaccount56556@proton.me>
This commit is contained in:
dom
2026-02-15 22:16:43 +08:00
parent 807de41ff0
commit 3209ecd0ba
2 changed files with 26 additions and 37 deletions

View File

@@ -1,11 +1,14 @@
import 'package:PiliPlus/common/widgets/gesture/horizontal_drag_gesture_recognizer.dart'; import 'package:PiliPlus/common/widgets/gesture/horizontal_drag_gesture_recognizer.dart';
import 'package:PiliPlus/common/widgets/gesture/image_tap_gesture_recognizer.dart'
show ImageGestureRecognizerMixin;
import 'package:flutter/gestures.dart'; import 'package:flutter/gestures.dart';
typedef IsBoundaryAllowed = typedef IsBoundaryAllowed =
bool Function(Offset? initialPosition, OffsetPair lastPosition); bool Function(Offset? initialPosition, OffsetPair lastPosition);
class ImageHorizontalDragGestureRecognizer class ImageHorizontalDragGestureRecognizer
extends CustomHorizontalDragGestureRecognizer { extends CustomHorizontalDragGestureRecognizer
with ImageGestureRecognizerMixin {
ImageHorizontalDragGestureRecognizer({ ImageHorizontalDragGestureRecognizer({
super.debugOwner, super.debugOwner,
super.supportedDevices, super.supportedDevices,
@@ -14,17 +17,6 @@ class ImageHorizontalDragGestureRecognizer
IsBoundaryAllowed? isBoundaryAllowed; IsBoundaryAllowed? isBoundaryAllowed;
int? _pointer;
@override
void addPointer(PointerDownEvent event) {
if (_pointer == event.pointer) {
return;
}
_pointer = event.pointer;
super.addPointer(event);
}
@override @override
bool hasSufficientGlobalDistanceToAccept( bool hasSufficientGlobalDistanceToAccept(
PointerDeviceKind pointerDeviceKind, PointerDeviceKind pointerDeviceKind,

View File

@@ -1,7 +1,25 @@
import 'package:flutter/gestures.dart' import 'package:flutter/gestures.dart'
show TapGestureRecognizer, PointerDownEvent, DoubleTapGestureRecognizer; show
GestureRecognizer,
TapGestureRecognizer,
DoubleTapGestureRecognizer,
PointerDownEvent;
class ImageTapGestureRecognizer extends TapGestureRecognizer { mixin ImageGestureRecognizerMixin on GestureRecognizer {
int? _pointer;
@override
void addPointer(PointerDownEvent event) {
if (_pointer == event.pointer) {
return;
}
_pointer = event.pointer;
super.addPointer(event);
}
}
class ImageTapGestureRecognizer extends TapGestureRecognizer
with ImageGestureRecognizerMixin {
ImageTapGestureRecognizer({ ImageTapGestureRecognizer({
super.debugOwner, super.debugOwner,
super.supportedDevices, super.supportedDevices,
@@ -9,34 +27,13 @@ class ImageTapGestureRecognizer extends TapGestureRecognizer {
super.preAcceptSlopTolerance, super.preAcceptSlopTolerance,
super.postAcceptSlopTolerance, super.postAcceptSlopTolerance,
}); });
int? _pointer;
@override
void addPointer(PointerDownEvent event) {
if (_pointer == event.pointer) {
return;
}
_pointer = event.pointer;
super.addPointer(event);
}
} }
class ImageDoubleTapGestureRecognizer extends DoubleTapGestureRecognizer { class ImageDoubleTapGestureRecognizer extends DoubleTapGestureRecognizer
with ImageGestureRecognizerMixin {
ImageDoubleTapGestureRecognizer({ ImageDoubleTapGestureRecognizer({
super.debugOwner, super.debugOwner,
super.supportedDevices, super.supportedDevices,
super.allowedButtonsFilter, super.allowedButtonsFilter,
}); });
int? _pointer;
@override
void addPointer(PointerDownEvent event) {
if (_pointer == event.pointer) {
return;
}
_pointer = event.pointer;
super.addPointer(event);
}
} }