hitTestChild method

bool hitTestChild(
  1. BoxHitTestResult result,
  2. RenderBox child, {
  3. required Offset position,
})

Implementation

bool hitTestChild(
  BoxHitTestResult result,
  RenderBox child, {
  required Offset position,
}) {
  final TextParentData textParentData = child.parentData as TextParentData;
  final Matrix4 transform = Matrix4.translationValues(
      textParentData.offset.dx + effectiveOffset.dx,
      textParentData.offset.dy + effectiveOffset.dy,
      0.0)
    ..scale(
      textParentData.scale,
      textParentData.scale,
      textParentData.scale,
    );
  final bool isHit = result.addWithPaintTransform(
    transform: transform,
    position: position,
    hitTest: (BoxHitTestResult result, Offset transformed) {
      assert(() {
        final Offset manualPosition =
            (position - textParentData.offset - effectiveOffset) /
                textParentData.scale!;
        return (transformed.dx - manualPosition.dx).abs() <
                precisionErrorTolerance &&
            (transformed.dy - manualPosition.dy).abs() <
                precisionErrorTolerance;
      }());
      return child.hitTest(result, position: transformed);
    },
  );
  return isHit;
}