On Fri, 17 Apr 2020 08:06:23 GMT, John Hendrikx <jhendr...@openjdk.org> wrote:
> This is a PoC for performance testing. > > It contains commented out code in PopupWindow and ProgressIndicatorSkin and > two tests are failing because of that. > > This code avoids registering two listeners (on Scene and on Window) for each > and every Node to support the aforementioned classes. The complete change > should update these two classes to add their own listeners instead. I left a few inline comments below. modules/javafx.controls/src/main/java/javafx/scene/control/skin/ProgressIndicatorSkin.java line 137: > 135: > 136: treeShowingExpression = new TreeShowingExpression(control); > 137: treeShowingExpression.addListener((obs, old, current) -> > updateAnimation()); Is there a reason not to still use `registerChangeListener` for this? modules/javafx.controls/src/main/java/javafx/scene/control/skin/ProgressIndicatorSkin.java line 239: > 237: super.dispose(); > 238: > 239: treeShowingExpression.dispose(); This could be removed if you are able to use `registerChangeListener` to add the listener. modules/javafx.graphics/src/main/java/javafx/scene/SubScene.java line 312: > 310: _value.setTreeVisible(isTreeVisible()); > 311: _value.setDisabled(isDisabled()); > 312: _value.setTreeShowing(isTreeShowing()); This looks fine. It might be worth adding a unit test to ensure that `isTreeShowing` works correctly for nodes in a `SubScene`. ------------- PR: https://git.openjdk.java.net/jfx/pull/185