if (visual == breaker.getCharCount()) {
return null;
}
TextHitInfo newInfo;
while(visual <= breaker.getCharCount()) {
visual++;
newInfo = getHitInfoFromVisual(visual);
if (newInfo.getCharIndex() >= breaker.logical2segment.length) {
return newInfo;
}
if (hitInfo.getCharIndex() >= 0) { // Don't check for leftmost info
if (
breaker.logical2segment[newInfo.getCharIndex()] !=
breaker.logical2segment[hitInfo.getCharIndex()]
) {
return newInfo; // We crossed segment boundary
}
}
TextRunSegment seg = breaker.runSegments.get(breaker.logical2segment[newInfo
.getCharIndex()]);
if (!seg.charHasZeroAdvance(newInfo.getCharIndex())) {
return newInfo;
}
}
return null;