getTargetCurrent function
Implementation
TargetPosition? getTargetCurrent(
TargetFocus target, {
bool rootOverlay = false,
}) {
if (target.keyTarget != null) {
var key = target.keyTarget!;
try {
final RenderBox renderBoxRed =
key.currentContext!.findRenderObject() as RenderBox;
final size = renderBoxRed.size;
BuildContext? context;
if (rootOverlay) {
context = key.currentContext!
.findRootAncestorStateOfType<OverlayState>()
?.context;
} else {
context = key.currentContext!
.findAncestorStateOfType<NavigatorState>()
?.context;
}
Offset offset;
if (context != null) {
offset = renderBoxRed.localToGlobal(
Offset.zero,
ancestor: context.findRenderObject(),
);
} else {
offset = renderBoxRed.localToGlobal(Offset.zero);
}
return TargetPosition(size, offset);
} catch (e) {
throw NotFoundTargetException(target.identify);
}
} else {
return target.targetPosition;
}
}