public Span GetSegmentFromPos(TextPoint p)
{
Row xtr = this[p.Y];
int CharNo = 0;
if (xtr.Count == 0)
return xtr.startSpan;
Span prev = xtr.startSpan;
foreach (Word w in xtr)
{
if (w.Text.Length + CharNo > p.X)
{
if (CharNo == p.X)
return prev;
return w.Span;
}
CharNo += w.Text.Length;
prev = w.Span;
}
return xtr.endSpan;
}