On Wed, 10 Jan 2024 10:52:44 GMT, Abhishek Kumar <abhis...@openjdk.org> wrote:

>> The collapsed icon for JTree is not painted using `Icon.paintIcon(Component 
>> c, Graphics g, int x, int y)` in GTK LAF. The collapsed icon is returned 
>> from BasicTreeUI class which doesn't contain any icon image whereas the 
>> expanded icon is returned from SynthTreeUI class and expanded icon is 
>> rendered correctly.
>> The proposed fix is to return collapsed icon as an object of collapsed icon 
>> wrapper which implements synthIcon and is similar to the expanded icon 
>> implementation.
>> 
>> Test mentioned in JBS is an applet based which is converted to main based 
>> now and extended for all installed LAFs on the system.
>> 
>> No regression caused with the fix, link is attached in JBS .
>
> Abhishek Kumar has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   ExpandedIconWrapper and CollapsedIconWrapper class merged together

src/java.desktop/share/classes/javax/swing/plaf/synth/SynthTreeUI.java line 82:

> 80:     private Icon expandedIconWrapper = new IconWrapper(IconType.EXPANDED);
> 81: 
> 82:     private Icon collapsedIconWrapper = new 
> IconWrapper(IconType.COLLAPSED);

I guess you can pass in `collapsedIcon` or `expandedIcon`  to `IconWrapper 
`class which can save it in `icon` field and
Then IconWrapper class can just call `SynthGraphicsUtils.paintIcon(icon, 
context, g, x, y, w, h);`

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/17294#discussion_r1447249502

Reply via email to