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

View File

@@ -1,7 +1,25 @@
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({
super.debugOwner,
super.supportedDevices,
@@ -9,34 +27,13 @@ class ImageTapGestureRecognizer extends TapGestureRecognizer {
super.preAcceptSlopTolerance,
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({
super.debugOwner,
super.supportedDevices,
super.allowedButtonsFilter,
});
int? _pointer;
@override
void addPointer(PointerDownEvent event) {
if (_pointer == event.pointer) {
return;
}
_pointer = event.pointer;
super.addPointer(event);
}
}