feat!: use raw pointer scale (>1 meaning zoom in, <1 meaning zoom out) rather than binary -1/1 for DelegateInputHandler

This commit is contained in:
Nick Fisher
2025-01-08 11:32:07 +08:00
parent c59aa6f43e
commit 069cebea3f

View File

@@ -269,7 +269,6 @@ class DelegateInputHandler implements InputHandler {
// noop
}
double? _lastScale;
@override
Future<void> onScaleUpdate(
@@ -284,21 +283,8 @@ class DelegateInputHandler implements InputHandler {
if (pointerCount == 1) {
_inputDeltas[InputType.SCALE1] =
Vector3(focalPointDelta.x, focalPointDelta.y, 0);
} else if (pointerCount == 2) {
var zoomDelta = 0.0;
if (_lastScale == null) {
if (scale < 0) {
zoomDelta = 1;
} else if (scale > 0) {
zoomDelta = -1;
}
_lastScale = scale;
} else {
zoomDelta = scale < _lastScale! ? 1 : -1;
_lastScale = scale;
}
_inputDeltas[InputType.SCALE2] = Vector3(0, 0, zoomDelta);
} else if (pointerCount == 2) {
_inputDeltas[InputType.SCALE2] = Vector3(0, 0, scale);
} else {
throw UnimplementedError("Only pointerCount <= 2 supported");
}