boundingClientRect property

BoundingClientRect get boundingClientRect

Implementation

BoundingClientRect get boundingClientRect {
  BoundingClientRect boundingClientRect = BoundingClientRect.zero(BindingContext(ownerView, ownerView.contextId, allocateNewBindingObject()));
  if (isRendererAttached) {
    flushLayout();
    RenderBoxModel sizedBox = renderBoxModel!;
    // Force flush layout.
    if (!sizedBox.hasSize) {
      sizedBox.markNeedsLayout();
      sizedBox.owner!.flushLayout();
    }

    if (sizedBox.hasSize) {
      Offset offset = _getOffset(sizedBox, ancestor: ownerDocument.documentElement, excludeScrollOffset: true);
      Size size = sizedBox.size;
      boundingClientRect = BoundingClientRect(
          context: BindingContext(ownerView, ownerView.contextId, allocateNewBindingObject()),
          x: offset.dx,
          y: offset.dy,
          width: size.width,
          height: size.height,
          top: offset.dy,
          right: offset.dx + size.width,
          bottom: offset.dy + size.height,
          left: offset.dx);
    }
  }

  return boundingClientRect;
}