It is seen in macos disabled JMenuItem arrow is not disabled even though JMenuItem itself is disabled. In native app, same menuitem arrow is disabled for disabled menuitem.
Issue is when AquaMenuPainter#paintMenuItem() is called, it tries to draw a ImageIcon image of the arrow via ImageIcon#paintIcon which tries to generate MultiResolutionCachedImage via getResolutionVariant() by calling AquaUtils#generateFilteredImage. It does not take into account if disabled arrow icon image needs to be drawn or not, so it is always enabled. Proposed fix is to generate a disabled ImageIcon image of the same arrow icon and use it for disabled state. ------------- Commit messages: - 8268084: [macos] Disabled JMenuItem arrow is not disabled Changes: https://git.openjdk.java.net/jdk/pull/5310/files Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=5310&range=00 Issue: https://bugs.openjdk.java.net/browse/JDK-8268084 Stats: 167 lines in 2 files changed: 166 ins; 0 del; 1 mod Patch: https://git.openjdk.java.net/jdk/pull/5310.diff Fetch: git fetch https://git.openjdk.java.net/jdk pull/5310/head:pull/5310 PR: https://git.openjdk.java.net/jdk/pull/5310