Skip to content

Commit d92d011

Browse files
Canvas: improve Text size computation.
1 parent 20dfcb0 commit d92d011

File tree

1 file changed

+10
-12
lines changed
  • source/phasereditor/phasereditor.canvas.ui/src/phasereditor/canvas/ui/shapes

1 file changed

+10
-12
lines changed

source/phasereditor/phasereditor.canvas.ui/src/phasereditor/canvas/ui/shapes/TextNode.java

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
// USE OR OTHER DEALINGS IN THE SOFTWARE.
2222
package phasereditor.canvas.ui.shapes;
2323

24-
import javafx.geometry.Bounds;
2524
import javafx.geometry.Point2D;
2625
import javafx.scene.Node;
2726
import javafx.scene.control.Label;
@@ -44,10 +43,18 @@ public class TextNode extends Label implements ISpriteNode, ITextSpriteNode {
4443

4544
private TextControl _control;
4645
private Text _skinText;
47-
46+
private Point2D _size;
47+
48+
4849
public TextNode(TextControl control) {
4950
_control = control;
5051
setPickOnBounds(true);
52+
53+
_size = new Point2D(0, 0);
54+
55+
boundsInLocalProperty().addListener((obs, oldv, newv) -> {
56+
_size = new Point2D(newv.getWidth(), newv.getHeight());
57+
});
5158
}
5259

5360
@Override
@@ -61,16 +68,7 @@ protected Skin<?> createDefaultSkin() {
6168
}
6269

6370
public Point2D getSize() {
64-
Node text = _skinText;
65-
if (text == null) {
66-
text = new Text(getModel().getText());
67-
}
68-
69-
applyCss();
70-
71-
Bounds b = getBoundsInLocal();
72-
73-
return new Point2D(b.getWidth(), b.getHeight());
71+
return _size;
7472
}
7573

7674
public void updateFromModel() {

0 commit comments

Comments
 (0)