hitTest method

List<Element> hitTest(
  1. Point<int> globalPosition, [
  2. Offset parentOffset = Offset.zero
])

Recursively finds all elements containing the given global coordinate.

Implementation

List<Element> hitTest(
  Point<int> globalPosition, [
  Offset parentOffset = Offset.zero,
]) {
  final absOffset = parentOffset + relativeOffset;
  final sx = globalPosition.x - 1;
  final sy = globalPosition.y - 1;
  final inside =
      sx >= absOffset.dx &&
      sx < absOffset.dx + size.width &&
      sy >= absOffset.dy &&
      sy < absOffset.dy + size.height;
  if (!inside) return [];

  final results = <Element>[];
  visitChildren((child) {
    results.addAll(child.hitTest(globalPosition, absOffset));
  });
  results.add(this);
  return results;
}