> Another much better try to fix the issue.
> I recommend to read: https://github.com/openjdk/jfx/pull/2201 first. All 
> tests from there are included. 
> I added some new ones that succeed before and after, a first step for more 
> CSS tests as discussed in: 
> https://github.com/openjdk/jfx/pull/2218#issuecomment-5094495306
> 
> My new idea is now the following constraint, which I think is also a much 
> better approach:
> - A `CssStyleHelper` always has a correct `firstStyleableAncestor`. We can at 
> any time trust and rely on it.
> - We will also reuse the existing loop for the `isUserSetFont` check to 
> improve the performance a bit
> 
> Implementation:
> - We now save a flag to exactly know in which CSS state the `Node` is.
> - We will collect all `Node`s in the scene tree once and then reuse the list 
> when we need to process a stale `styleHelper` from a parent.
>   - This will make sure we do no process the parent again and again when we 
> have some stale `styleHelper`s in the chain 
> - Not every `Node` has a `styleHelper` - it is only created when needed, so 
> we can not attach the flag in there.
> 
> This fixes the issue while a deep (optionally unstyled) scene graph has no 
> performance penality.
> The approach is similar than my previous PR, but more smart. And with the set 
> constraint mentioned above.
> 
> ---
> 
> I do think we can improve the `CssStyleHelper` more. But for another day. 
> Maybe at one point, with more tests and when all requirements are clear, we 
> can find a way without `CssHelperState` and without creating an empty 
> `CssStyleHelper` just to hold trigger states (because of that, we need to 
> check `styleHelper.cacheContainer != null` a lot of times).
> 
> 
> ---------
> - [x] I confirm that I make this contribution in accordance with the [OpenJDK 
> Interim AI Policy](https://openjdk.org/legal/ai).

Marius Hanl has updated the pull request with a new target base due to a merge 
or a rebase. The pull request now contains 10 commits:

 - Merge branch 'master' of https://github.com/openjdk/jfx into 
8388277-REDO]-Looked-up-color-fails-for--fx-background-color-in-JavaFX-CSS-file
 - fix
 - test
 - idea how to fix that issue
 - failing test
 - Fix another broken case
 - change the way we process a stale CssStyleHelper
 - Merge branch 'master' of https://github.com/openjdk/jfx into 
8388277-REDO]-Looked-up-color-fails-for--fx-background-color-in-JavaFX-CSS-file
 - Merge branch 'master' of https://github.com/openjdk/jfx into 
8388277-REDO]-Looked-up-color-fails-for--fx-background-color-in-JavaFX-CSS-file
   
   # Conflicts:
   #    
modules/javafx.graphics/src/test/java/test/javafx/scene/CssStyleHelperTest.java
 - 8388277: [REDO] Looked-up color fails for -fx-background-color in JavaFX CSS 
file

-------------

Changes: https://git.openjdk.org/jfx/pull/2225/files
  Webrev: https://webrevs.openjdk.org/?repo=jfx&pr=2225&range=06
  Stats: 1246 lines in 5 files changed: 1059 ins; 76 del; 111 mod
  Patch: https://git.openjdk.org/jfx/pull/2225.diff
  Fetch: git fetch https://git.openjdk.org/jfx.git pull/2225/head:pull/2225

PR: https://git.openjdk.org/jfx/pull/2225

Reply via email to