handlePointerSignal method

void handlePointerSignal(
  1. 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,
      ),
    );
  }
}