<Swing Dev> RFR: 8268084: [macos] Disabled JMenuItem arrow is not disabled [v2]
Sergey Bylokhov
serb at openjdk.java.net
Fri Sep 3 05:57:27 UTC 2021
On Fri, 3 Sep 2021 04:13:46 GMT, Prasanta Sadhukhan <psadhukhan at openjdk.org> wrote:
>> src/java.desktop/macosx/classes/com/apple/laf/AquaMenuPainter.java line 419:
>>
>>> 417: } else {
>>> 418: arrowIcon.paintIcon(c, g, arrowIconRect.x, arrowIconRect.y);
>>> 419: }
>>
>> It will be even better to implement it in the same way as done in other L&fs like windows/metal.
>
> I will like to know how because as it is pointed out, paintArrow delegates drawing to ImageIcon#paintIcon which is in shared code and this is mac specific issue so it needs to be handled before we call ImageIcon#paintIcon
You need to override the paintIcon method in the InvertableImageIcon returned by the AquaImageFactory.getMenuArrowIcon() or you can create `class MenuArrowIcon extends InvertableImageIcon,` and override it there.
Also take a look to another usage of InvertableImageIcon for "MenuItemCheckIcon", should we disable it as well?
-------------
PR: https://git.openjdk.java.net/jdk/pull/5310
More information about the swing-dev
mailing list