RFR: 8263095: Provide a way for a custom control to indicate that its userAgentStyleSheet has changed
Alessadro Parisi
github.com+16880178+palexdev at openjdk.java.net
Wed Jun 2 02:00:40 UTC 2021
On Mon, 31 May 2021 13:57:22 GMT, Alessadro Parisi <github.com+16880178+palexdev at 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();
> }
@nlisker Hello, sorry I'm new to contributions, my OCA has been approved recently
I have read the CSR FAQ but I don't understand where I should go to create it
-------------
PR: https://git.openjdk.java.net/jfx/pull/525
More information about the openjfx-dev
mailing list