RFR: 8258979: The image didn't show correctly with GTK LAF [v4]

Prasanta Sadhukhan psadhukhan at openjdk.org
Wed Jan 10 11:29:25 UTC 2024


On Wed, 10 Jan 2024 10:52:44 GMT, Abhishek Kumar <abhiscxk at 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


More information about the client-libs-dev mailing list