resolveCaretY method

double resolveCaretY(
  1. CaretStop stop
)

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;
}