On Mon, 18 Aug 2025 16:31:00 GMT, Alexey Ivanov <aiva...@openjdk.org> wrote:

> **Problem:**
> 
> The colors for the accelerators are cached in static fields: 
> `disabledForeground`, `acceleratorSelectionForeground` and 
> `acceleratorForeground`. As soon as this field is set to a non-`UIResource` 
> value, the value cannot change.
> 
> **Fix:**
> 
> Remove the static fields for accelerator from `WindowsMenuItemUI` and use the 
> fields inherited from `BasicMenuItemUI`, pass these fields as parameters to 
> static methods.
> 
> Additionally, I formatted the calls to `WindowsMenuItemUI.paintMenuItem` in 
> one consistent way.
> 
> I removed the redundant javadoc from `paintMenuItem` and added the missing 
> `@Override` annotation.
> 
> I provided a regression test. The test also reproduces 
> [JDK-8365375](https://bugs.openjdk.org/browse/JDK-8365375) that was resolved 
> in #26743.

test/jdk/com/sun/java/swing/plaf/windows/MenuItem/MenuItemAcceleratorColor.java 
line 126:

> 124:         Color acceleratorSelectionForeground = 
> UIManager.getColor("MenuItem.acceleratorSelectionForeground");
> 125:         UIManager.put("MenuItem.acceleratorForeground", Color.GREEN);
> 126:         UIManager.put("MenuItem.acceleratorSelectionForeground", 
> Color.RED);

We are testing 2 of 3 static fields..I guess since we do not have test for 
these fields explicitly, we can test the 3rd one too which is 
`disabledForeground`

like putting `UIManager.put("MenuItem.disabledForeground", Color.BLUE) `
and do `quit.setEnabled(false)` in which case it should be BLUE

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

PR Review Comment: https://git.openjdk.org/jdk/pull/26826#discussion_r2283953201

Reply via email to