m3eOverlayRectFor function

Rect? m3eOverlayRectFor(
  1. BuildContext context
)

Global (overlay) rectangle for context's render box, including transforms.

Prefer this over localToGlobal(Offset.zero) & size when ancestors use Transform (e.g. menu open scale), which otherwise mis-anchors submenus.

Implementation

Rect? m3eOverlayRectFor(BuildContext context) {
  final RenderObject? object = context.findRenderObject();
  if (object is! RenderBox || !object.hasSize || !object.attached) {
    return null;
  }
  final OverlayState? overlay = Overlay.maybeOf(context);
  final RenderObject? ancestor = overlay?.context.findRenderObject();
  return MatrixUtils.transformRect(
    object.getTransformTo(ancestor),
    Offset.zero & object.size,
  );
}