// for each text run, see if its been hit
for (int i = 0; i < textRuns.size(); ++i) {
TextRun textRun = (TextRun)textRuns.get(i);
TextSpanLayout layout = textRun.getLayout();
TextHit textHit = layout.hitTestChar((float) x, (float) y);
if (textHit != null && layout.getBounds().contains(x,y)) {
textHit.setTextNode(node);
textHit.setFontRenderContext(frc);
cachedMark = new BasicTextPainter.Mark(x, y, layout, textHit);
cachedNode = node;