On Thu, 2 Sep 2021 10:48:40 GMT, Sergey Bylokhov <s...@openjdk.org> 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

Reply via email to