handlePointerSignal method
- PointerSignal signal
Handles pointer signals such as double-tap text edit requests.
The controller currently reacts only to doubleTap signals in move mode:
if the top-most hit node is a TextNode, an EditTextRequested event is
emitted.
The emitted EditTextRequested.position is in view/screen coordinates.
Implementation
void handlePointerSignal(PointerSignal signal) {
if (signal.type != PointerSignalType.doubleTap) return;
if (mode != CanvasMode.move) return;
final scenePoint = _contracts.toScenePoint(signal.position);
final hit = hitTestTopNode(_contracts.scene, scenePoint);
if (hit is TextNode) {
_contracts.emitEditTextRequested(
EditTextRequested(
nodeId: hit.id,
timestampMs: signal.timestampMs,
position: signal.position,
),
);
}
}