From 16114d836d646ff06d88a4a25f1c5435c86c1ef4 Mon Sep 17 00:00:00 2001 From: Rebecca Williams Date: Fri, 4 Apr 2025 12:15:47 +0100 Subject: [PATCH] Fix label size so that it does not resize based on fontsize If the fontsize was larger than the widget height then the Label widget woult increase the height to fit the fontsize. This was undesired behaviour and also not the behaviour of other widgets displaying text. Now we fix the label widget to be the size defined by the user and the text will be cropped if too large for the widget. --- .../javafx/widgets/LabelRepresentation.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/app/display/representation-javafx/src/main/java/org/csstudio/display/builder/representation/javafx/widgets/LabelRepresentation.java b/app/display/representation-javafx/src/main/java/org/csstudio/display/builder/representation/javafx/widgets/LabelRepresentation.java index 93690f293c..3585156e5d 100644 --- a/app/display/representation-javafx/src/main/java/org/csstudio/display/builder/representation/javafx/widgets/LabelRepresentation.java +++ b/app/display/representation-javafx/src/main/java/org/csstudio/display/builder/representation/javafx/widgets/LabelRepresentation.java @@ -18,6 +18,7 @@ import javafx.geometry.Dimension2D; import javafx.geometry.Insets; import javafx.geometry.Pos; +import javafx.scene.control.Control; import javafx.scene.control.Label; import javafx.scene.layout.Background; import javafx.scene.layout.BackgroundFill; @@ -137,23 +138,31 @@ public void updateChanges() { case NONE: jfx_node.setPrefSize(width, height); + jfx_node.setMinSize(Control.USE_PREF_SIZE, Control.USE_PREF_SIZE); + jfx_node.setMaxSize(Control.USE_PREF_SIZE, Control.USE_PREF_SIZE); if (was_ever_transformed) jfx_node.getTransforms().clear(); break; case NINETY: jfx_node.setPrefSize(height, width); + jfx_node.setMinSize(Control.USE_PREF_SIZE, Control.USE_PREF_SIZE); + jfx_node.setMaxSize(Control.USE_PREF_SIZE, Control.USE_PREF_SIZE); jfx_node.getTransforms().setAll(new Rotate(-rotation.getAngle()), new Translate(-height, 0)); was_ever_transformed = true; break; case ONEEIGHTY: jfx_node.setPrefSize(width, height); + jfx_node.setMinSize(Control.USE_PREF_SIZE, Control.USE_PREF_SIZE); + jfx_node.setMaxSize(Control.USE_PREF_SIZE, Control.USE_PREF_SIZE); jfx_node.getTransforms().setAll(new Rotate(-rotation.getAngle()), new Translate(-width, -height)); was_ever_transformed = true; break; case MINUS_NINETY: jfx_node.setPrefSize(height, width); + jfx_node.setMinSize(Control.USE_PREF_SIZE, Control.USE_PREF_SIZE); + jfx_node.setMaxSize(Control.USE_PREF_SIZE, Control.USE_PREF_SIZE); jfx_node.getTransforms().setAll(new Rotate(-rotation.getAngle()), new Translate(0, -width)); was_ever_transformed = true;