FloatList (int startOffset, int endOffset) { FloatList ranges = logicalRangeToVisualRanges(startOffset, endOffset); for (int i = 0; i < ranges.size() - 1; i += 2) { float startX = ranges.getFloat(i); float endX = ranges.getFloat(i + 1); if (startX == endX) { if (startX > 0) { startX--; } else { endX++; } } else { endX--; } ranges.set(i, startX); ranges.set(i + 1, endX); } return ranges; }