mirror of
https://github.com/bggRGjQaUbCoE/PiliPlus.git
synced 2026-06-29 22:00:16 +08:00
@@ -1,12 +1,15 @@
|
||||
import 'package:flutter/gestures.dart'
|
||||
show
|
||||
PointerDownEvent,
|
||||
GestureRecognizer,
|
||||
RecognizerCallback,
|
||||
ScaleGestureRecognizer,
|
||||
PointerPanZoomStartEvent,
|
||||
LongPressGestureRecognizer;
|
||||
|
||||
mixin PlayerGestureMixin on GestureRecognizer {
|
||||
bool isPosAllowed = true;
|
||||
bool _isPosAllowed = true;
|
||||
|
||||
@override
|
||||
T? invokeCallback<T>(
|
||||
@@ -14,7 +17,7 @@ mixin PlayerGestureMixin on GestureRecognizer {
|
||||
RecognizerCallback<T> callback, {
|
||||
String Function()? debugReport,
|
||||
}) {
|
||||
if (!isPosAllowed) return null;
|
||||
if (!_isPosAllowed) return null;
|
||||
return super.invokeCallback(name, callback, debugReport: debugReport);
|
||||
}
|
||||
}
|
||||
@@ -29,6 +32,24 @@ class PlayerScaleGestureRecognizer extends ScaleGestureRecognizer
|
||||
super.trackpadScrollCausesScale,
|
||||
super.trackpadScrollToScaleFactor,
|
||||
});
|
||||
|
||||
void _handleAllowedPointer() {
|
||||
if (isReadyState) {
|
||||
_isPosAllowed = isPosAllowed;
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
void addAllowedPointer(PointerDownEvent event) {
|
||||
_handleAllowedPointer();
|
||||
super.addAllowedPointer(event);
|
||||
}
|
||||
|
||||
@override
|
||||
void addAllowedPointerPanZoom(PointerPanZoomStartEvent event) {
|
||||
_handleAllowedPointer();
|
||||
super.addAllowedPointerPanZoom(event);
|
||||
}
|
||||
}
|
||||
|
||||
class PlayerLongPressGestureRecognizer extends LongPressGestureRecognizer
|
||||
@@ -40,4 +61,12 @@ class PlayerLongPressGestureRecognizer extends LongPressGestureRecognizer
|
||||
super.debugOwner,
|
||||
super.allowedButtonsFilter,
|
||||
});
|
||||
|
||||
@override
|
||||
void addAllowedPointer(PointerDownEvent event) {
|
||||
if (state == .ready) {
|
||||
_isPosAllowed = isPosAllowed;
|
||||
}
|
||||
super.addAllowedPointer(event);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user