RFR: 8373650: Test "javax/swing/JMenuItem/6458123/ManualBug6458123.java" fails because the check icons are not aligned properly as expected [v4]

Tejesh R tr at openjdk.org
Mon Jan 19 08:59:00 UTC 2026


On Fri, 16 Jan 2026 04:03:58 GMT, Prasanta Sadhukhan <psadhukhan at openjdk.org> wrote:

>> Check/radiobutton icon are not aligned properly in RTL. `WindowsMenuItemUI `uses `MenuItemLayoutHelper.layoutMenuItem` to do the layout which calls `doRTLColumnLayout `which calculates x positions in `calcXPositionsRTL `and then again aligns in `alignRects`. However, since in Windows historically radiobutton/check icon was not drawn or drawn below the menuitem image icon (since image icon and check icon was drawn in the same layout space and not separately) the aligned x position of check icons returned from `MenuItemLayoutHelper` was not correct but since `MenuItemLayoutHelper` alignment is used in other L&Fs also so we need to realign it in windows specific class i.e in WindowsIconFactory in paintIcon
>> 
>> Before fix
>> 
>> <img width="425" height="646" alt="image" src="https://github.com/user-attachments/assets/6aac649d-b099-4e11-ba9a-83c623034287" />
>> 
>> After fix
>> 
>> <img width="430" height="641" alt="image" src="https://github.com/user-attachments/assets/e0ea7e3e-d6cb-44a6-aa4f-78435f85d6fb" />
>
> Prasanta Sadhukhan has updated the pull request incrementally with one additional commit since the last revision:
> 
>   copyright year updated

Should we update the bugid in test too ?

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

> 936:                                                 (icon.getIconHeight() <= 16) ? y + OFFSET : (y + icon.getIconHeight() / 2), state);
> 937:                                         } else {
> 938:                                             skin.paintSkin(g,

Can we optimize the code here, since mostly `x` is changing here based on conditions. It'll help in readability and review too.

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

PR Review: https://git.openjdk.org/jdk/pull/28889#pullrequestreview-3676963759
PR Review Comment: https://git.openjdk.org/jdk/pull/28889#discussion_r2703811112


More information about the client-libs-dev mailing list