pointerEvent method
Handle a pointer event.
Implementation
@override
pointerEvent(PointerEvent event, HitTestEntry<HitTestTarget> entry) {
if (!active) return;
final stateMachine = this.stateMachine;
final position = localToArtboard(
position: event.localPosition,
artboardBounds: artboard.bounds,
fit: fit,
alignment: alignment,
size: lastSize,
scaleFactor: layoutScaleFactor,
);
final HitResult hitResult;
if (event is PointerDownEvent) {
hitResult = stateMachine.pointerDown(position, pointerId: event.pointer);
} else if (event is PointerUpEvent) {
hitResult = stateMachine.pointerUp(position, pointerId: event.pointer);
} else if (event is PointerMoveEvent) {
hitResult = stateMachine.pointerMove(position, pointerId: event.pointer);
} else if (event is PointerHoverEvent) {
hitResult = stateMachine.pointerMove(position, pointerId: event.pointer);
} else if (event is PointerExitEvent) {
hitResult = stateMachine.pointerExit(position, pointerId: event.pointer);
} else {
hitResult = HitResult.none;
}
// We handle the _previousHitResult as well to account for potential exit
// events that may not have been processed.
if (hitResult != HitResult.none || _previousHitResult != HitResult.none) {
scheduleRepaint();
}
_previousHitResult = hitResult;
}