TextField.CharPosition GetCharPosition(int caretIndex) { if (caretIndex < textField.charPositions.Count) return textField.charPositions[caretIndex]; else { TextField.CharPosition cp = new TextField.CharPosition(); cp.caretIndex = caretIndex; cp.lineIndex = (short)Math.Max(0, textField.lines.Count - 1); return cp; } }