On Mon, 30 Jun 2025 05:57:30 GMT, Prasanta Sadhukhan <psadhuk...@openjdk.org> 
wrote:

>> When JRadioButtonMenuItem is called with imageIcon, then only imageIcon is 
>> shown without radiobutton in WIndowsLookAndFeel as there was no provision of 
>> drawing the radiobutton alongside icon.
>> If icon is not there, the radiobutton is drawn. Added provision of drawing 
>> the radiobutton windows Skin even when imageIcon is present.
>
> Prasanta Sadhukhan has updated the pull request incrementally with one 
> additional commit since the last revision:
> 
>   Alignment fix

src/java.desktop/windows/classes/com/sun/java/swing/plaf/windows/WindowsIconFactory.java
 line 928:

> 926:                                         getIconWidth(), getIconHeight(), 
> backgroundState);
> 927:                                 skinWidth = getIconWidth();
> 928:                                 skin = xp.getSkin(c, part);

What I expect to see here is that the skin is always painted at (`x + OFFSET, y 
+ OFFSET`)


skin.paintSkin(g, x + OFFSET, y + OFFSET, state);


in both Windows 10 and 11.

The check mark and bullet have to remain on their own designated place.

src/java.desktop/windows/classes/com/sun/java/swing/plaf/windows/WindowsIconFactory.java
 line 940:

> 938:                         icon.paintIcon(c, g, x + icon.getIconWidth(),
> 939:                                 y + OFFSET);
> 940:                     }

If an icon is present, it gets painted instead of check mark or bullet in 
Windows 10.

In Windows 11 the icon gets painted on

* on the same location in regular case when the current popup menu contains no 
check or radio menu items with an icon;
* on its own column with has proper large margins when there's at least one 
check or radio menu item with an icon; the size of the entire popup has to 
increase to allocate space for the icon column.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/23324#discussion_r2175235234
PR Review Comment: https://git.openjdk.org/jdk/pull/23324#discussion_r2175244401

Reply via email to