if (hasState(STATE_EDITING))
return;
- this.text = new String(text != null ? text : "");
+ this.text = text;
this.font = font;
this.color = color;
this.scale = scale;
this.scaleRecip = 1.0 / scale;
this.caret = 0;
this.selectionTail = 0;
+
resetCaches();
}
// no value => value
if(this.text == null && text != null) NodeUtil.decreasePending(this);
- this.text = text != null ? text : "";
- caret = Math.min(caret, this.text.length());
+ this.text = text;
+ caret = text != null ? Math.min(caret, text.length()) : 0;
selectionTail = caret;
resetCaches();
y += line.layout.getDescent() + line.layout.getLeading() + line.layout.getAscent();
Rectangle2D bbox = line.layout.getLogicalHighlightShape(0, lineText.length()).getBounds2D();
+ // HighlightShape is not large enough, if font is italic.
+ Rectangle2D bbox2 = line.layout.getBounds();
+ bbox.add(bbox2);
bbox.setFrame(bbox.getX(), bbox.getY() + line.drawPosY, bbox.getWidth(), bbox.getHeight());
line.bbox = bbox;
}