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