On Thu, 2 Sep 2021 10:48:40 GMT, Sergey Bylokhov <[email protected]> wrote:
>> That is for MenuArrowIcon which is also there for Metal and Windows L&F in
>> addition with MenuItemArrowIcon(). Aqua does not have it for MenuItem.
>> The control for aqua menuitem goes via ImageIcon#paintIcon for menuitem
>> arrow which does not have enabled/disabled parameter so it was done the way
>> it is now.
>
>> That is for MenuArrowIcon which is also there for Metal and Windows L&F in
>> addition with MenuItemArrowIcon(). Aqua does not have it for MenuItem.
>
> But this icon is used for the menuitem as well, isn't it? You can add this
> line to the test and check:
>
>
> UIManager.setLookAndFeel("com.apple.laf.AquaLookAndFeel");
> + UIManager.getDefaults().put("Menu.arrowIcon", "");
>
>
>> The control for aqua menuitem goes via ImageIcon#paintIcon for menuitem
>> arrow which does not have enabled/disabled parameter so it was done the way
>> it is now.
>
> I guess it is go via Icon.paintIcon() at AquaMenuPainter:408 , this is
> similar to metal and windows L&Fs. The first parameter of paintIcon is a
> component, so all information can be read there. And depending on the state
> that icon can draws default arrow, or creates/caches the disabled icon.
>
>
> That is for MenuArrowIcon which is also there for Metal and Windows L&F in
> addition with MenuItemArrowIcon(). Aqua
> And depending on the state that icon can draws default arrow, or
> creates/caches the disabled icon.
I guess that is what it is being done, no? Instead of inside paintArrow()
method, I am creating the disabled icon outside.
-------------
PR: https://git.openjdk.java.net/jdk/pull/5310