onCanvasPointerSignal method
Implementation
void onCanvasPointerSignal(PointerSignalEvent event) {
if (event is PointerScrollEvent) {
double scaleChange = event.scrollDelta.dy < 0
? (1 / canvasReader.state.mouseScaleSpeed)
: (canvasReader.state.mouseScaleSpeed);
scaleChange = keepScaleInBounds(scaleChange, canvasReader.state.scale);
if (scaleChange == 0.0) {
return;
}
double previousScale = canvasReader.state.scale;
canvasWriter.state.updateScale(scaleChange);
var focalPoint = (event.localPosition - canvasReader.state.position);
var focalPointScaled =
focalPoint * (canvasReader.state.scale / previousScale);
canvasWriter.state.updatePosition(focalPoint - focalPointScaled);
canvasWriter.state.updateCanvas();
}
}