maybeFromElement static method

CockpitTargetGeometry? maybeFromElement(
  1. Element element
)

Implementation

static CockpitTargetGeometry? maybeFromElement(Element element) {
  if (!element.mounted) {
    return null;
  }

  final renderObject = element.findRenderObject();
  if (renderObject is! RenderBox || !renderObject.attached) {
    return null;
  }
  if (!renderObject.hasSize) {
    return null;
  }

  final size = renderObject.size;
  if (size.width <= 0 || size.height <= 0) {
    return null;
  }

  final origin = renderObject.localToGlobal(Offset.zero);
  final view =
      View.maybeOf(element) ??
      WidgetsBinding.instance.platformDispatcher.implicitView;
  if (view == null) {
    return null;
  }
  final logicalViewSize = view.physicalSize / view.devicePixelRatio;

  return CockpitTargetGeometry(
    left: origin.dx,
    top: origin.dy,
    width: size.width,
    height: size.height,
    viewportLeft: 0,
    viewportTop: 0,
    viewportWidth: logicalViewSize.width,
    viewportHeight: logicalViewSize.height,
    viewId: view.viewId,
  );
}