On Fri, 28 Nov 2025 08:50:09 GMT, Prasanta Sadhukhan <[email protected]> wrote:
> It is seen that non-TopLevel JMenu's get repainted when the mouse exits the > item. If the popup menu is still visible to the right, repainting the JMenu > causes the selection background to be repainted over the top of the popup, > even though the popup is supposed to appear above the JMenu. > > The problem is caused by the mouse handling code in the protected inner class > `WindowsMenuUI.WindowsMouseInputHandler.` The `mouseEntered` and > `mouseExited` handlers set the RollOver property and the JMenu gets > repainted. However, setting the RollOver property is only necessary for > top-level JMenus. Non-TopLevel JMenu menu items such as these get painted by > the super class BasicMenuItemUI which uses isSelected() rather than > isRollOver() to determine whether the selection background color should be > used. > > Fix is to use the repainting only for TopLevel Menu in `mouseExited`, the > same way it is being done for `mouseEntered` Marked as reviewed by dnguyen (Committer). ------------- PR Review: https://git.openjdk.org/jdk/pull/28551#pullrequestreview-3553161804
