On Mon, 31 May 2021 13:57:22 GMT, Alessadro Parisi 
<github.com+16880178+palex...@openjdk.org> wrote:

> This change allows custom control to change their style dynamically
> When the user-agent stylesheet changes the property automatically calls 
> `NodeHelper.reapplyCSS(Region.this);` to recompute the CSS for the node and 
> its children.
> To make this work the StyleManager class must be fixed too.
> The line `regionUserAgentStylesheet = 
> weakRegionUserAgentStylesheetMap.computeIfAbsent((Region)region, 
> Region::getUserAgentStylesheet);
> ` is problematic because if the region is already present in the map but the 
> user-agent stylesheet changed, the value of `regionUserAgentStylesheet` is 
> not updated and this leads to controls having the wrong style.
> To fix this issue I added this check:
> 
> if (((Region) region).getUserAgentStylesheet() != null && !((Region) 
> region).getUserAgentStylesheet().equals(regionUserAgentStylesheet)) {
>     weakRegionUserAgentStylesheetMap.put((Region) region, ((Region) 
> region).getUserAgentStylesheet());
>     regionUserAgentStylesheet = ((Region) region).getUserAgentStylesheet();
> }

Don't worry about the CSR for now, someone will create it when the review is 
near completion. However, since this is an enhancement, you should discuss it 
first in the mailing list as explained in the README file of the repo.

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

PR: https://git.openjdk.java.net/jfx/pull/525

Reply via email to