RFR: 8289539: The color returned by CheckBox.interiorBackground is incorrect

Jayathirth D V jdv at openjdk.org
Mon Sep 26 15:31:23 UTC 2022


On Thu, 22 Sep 2022 06:59:59 GMT, Tejesh R <tr at openjdk.org> wrote:

> The color returned for `InteriorBackground` property is the default color used for only _WindowsClassicLookAndFeel_. For _WindowsLookAndFeel_ the `InteriorBackground` color is not been used when checkbox paint happens. In _WindowsLookAndFeel_ the CheckBox check/uncheck is drawn using `ImageCache` which is totally independent of `InteriorBackground` color in which the user expects it to be.
> The proposed fix is to return null for _WindowsLookAndFeel_ (which is what happens in other LookAndFeel like Metal/Synth/Motif/Aqua ) and return default color which is the actual color used in _WindowsClassicLookAndFeel_.

Spent some time to check where all we are using these properties.
I see that we use "CheckBox.background" for CheckBoxIcon when it is pressed at https://github.com/openjdk/jdk/blob/master/src/java.desktop/windows/classes/com/sun/java/swing/plaf/windows/WindowsIconFactory.java#L389

Can you check why we use "CheckBox.background" instead of "CheckBox.interiorBackground" in WindowsIconFactory and what is its behaviour in Windows 11?

src/java.desktop/windows/classes/com/sun/java/swing/plaf/windows/WindowsLookAndFeel.java line 661:

> 659: 
> 660:             "CheckBox.font", ControlFont,
> 661:             "CheckBox.interiorBackground", (xp != null)?

Do we return any color other than the default FFFFFF/null?
What is the use of "win.frame.backgroundColor" property when we always return table.get("window")?

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

PR: https://git.openjdk.org/jdk/pull/10385



More information about the client-libs-dev mailing list