ADDITIONAL SYSTEM INFORMATION :
Java & JavaFX 8/11/13 (happens with all of them)
A DESCRIPTION OF THE PROBLEM :
When using StrokeType.OUTSIDE on the text of a label inside a ScrollPane, scrolling vertically (and perhaps horizontally) causes stuttering and lag to the point where the application is barely usable.
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Install JDK and JavaFX 8 or 11 or 13.
Create Main.java inside packageName, style.css inside root of resources folder
```css
.test.label .text {
-fx-fill: white;
-fx-stroke: red;
-fx-stroke-type: outside;
}
```
And module-info.java
```java
module m {
requires javafx.base;
requires javafx.controls;
exports packageName;
}
```
The labels render just fine but when I try to scroll it lags really much.
```css
.test.label .text {
-fx-fill: white;
-fx-stroke: red;
/* */
}
```
I've tried running with JDK & JavaFX 8 and 11 as well but there was no difference.
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
Expected it to be as smooth as it is when used without `-fx-stroke-type: outside;`.
ACTUAL -
It causes high amounts of stuttering/lag when scrolling.
---------- BEGIN SOURCE ----------
public class Main extends Application {
@Override
public void start(Stage primaryStage) {
ScrollPane scrollPane = new ScrollPane();
VBox vbox = new VBox();
for (int i = 0; i < 50; i++) {
Label label = new Label("Label " + i);
label.getStyleClass().add("test");
vbox.getChildren().add(label);
}
scrollPane.setContent(vbox);
Scene scene = new Scene(scrollPane, 500, 500);
primaryStage.setScene(scene);
scene.getStylesheets().add("/style.css");
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
---------- END SOURCE ----------
CUSTOMER SUBMITTED WORKAROUND :
Removing `-fx-stroke-type: outside;` fixes the lag but as the default is StrokeType.INSIDE the stroke overlaps the fill as it is drawn inside of the text and so this is not a viable solution.
FREQUENCY : always
Java & JavaFX 8/11/13 (happens with all of them)
A DESCRIPTION OF THE PROBLEM :
When using StrokeType.OUTSIDE on the text of a label inside a ScrollPane, scrolling vertically (and perhaps horizontally) causes stuttering and lag to the point where the application is barely usable.
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Install JDK and JavaFX 8 or 11 or 13.
Create Main.java inside packageName, style.css inside root of resources folder
```css
.test.label .text {
-fx-fill: white;
-fx-stroke: red;
-fx-stroke-type: outside;
}
```
And module-info.java
```java
module m {
requires javafx.base;
requires javafx.controls;
exports packageName;
}
```
The labels render just fine but when I try to scroll it lags really much.
```css
.test.label .text {
-fx-fill: white;
-fx-stroke: red;
/* */
}
```
I've tried running with JDK & JavaFX 8 and 11 as well but there was no difference.
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
Expected it to be as smooth as it is when used without `-fx-stroke-type: outside;`.
ACTUAL -
It causes high amounts of stuttering/lag when scrolling.
---------- BEGIN SOURCE ----------
public class Main extends Application {
@Override
public void start(Stage primaryStage) {
ScrollPane scrollPane = new ScrollPane();
VBox vbox = new VBox();
for (int i = 0; i < 50; i++) {
Label label = new Label("Label " + i);
label.getStyleClass().add("test");
vbox.getChildren().add(label);
}
scrollPane.setContent(vbox);
Scene scene = new Scene(scrollPane, 500, 500);
primaryStage.setScene(scene);
scene.getStylesheets().add("/style.css");
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
---------- END SOURCE ----------
CUSTOMER SUBMITTED WORKAROUND :
Removing `-fx-stroke-type: outside;` fixes the lag but as the default is StrokeType.INSIDE the stroke overlaps the fill as it is drawn inside of the text and so this is not a viable solution.
FREQUENCY : always