resolveCaretY method
Implementation
double resolveCaretY(CaretStop stop) {
// 1. Paragraph renders (visible first)
for (final id in _visibleContainerIds) {
final render = _renders[id];
if (render != null) {
final y = render.getCaretY(stop.fragmentId, stop.offset);
if (y != null) return y;
}
}
// 2. HR renders — HR stops use the node id as fragmentId
final hrRender = _hrRenders[stop.fragmentId];
if (hrRender != null && hrRender.attached && hrRender.hasSize) {
return hrRender.localToGlobal(Offset.zero).dy;
}
// 3. All paragraph renders fallback
for (final render in _renders.values) {
final y = render.getCaretY(stop.fragmentId, stop.offset);
if (y != null) return y;
}
return 0.0;
}