RFR: 8331619: TabbedPane's contentOpaque, tabsOpaque and setOpaque doesn't work properly in Aqua LAF

Alisen Chung achung at openjdk.org
Wed May 15 03:08:11 UTC 2024


On Tue, 14 May 2024 23:57:20 GMT, Damon Nguyen <dnguyen at openjdk.org> wrote:

>> JTabbedPane's contentOpaque and tabsOpaque properties are not honored in Aqua L&F. JTabbedPane's content area and tab background color are not as expected when tabbedpane opacity is set to true or false. Fix is to handle the opacity behavior correctly and inline with other LAF as well. 
>> 
>> Existing test `TestBackgroundScrollPolicy.java` failed with the proposed fix and it is updated to run only for linux and windows platform because the content area for tabbedpane is rendered to the width and height of tabbedpane starting from (0, 0) position (https://github.com/openjdk/jdk/blob/cf7c97732320d70de5f5725c920d5c3861a2c9c8/src/java.desktop/macosx/classes/com/apple/laf/AquaTabbedPaneUI.java#L684C16-L684C16) and that leaves no place for tab area behind tabs.
>> 
>> CI testing is green after this test update and link posted in JBS.
>
> test/jdk/javax/swing/JTabbedPane/TestBackgroundScrollPolicy.java line 51:
> 
>> 49:         for (UIManager.LookAndFeelInfo laf : UIManager.getInstalledLookAndFeels()) {
>> 50:             System.out.println("Testing L&F: " + laf.getClassName());
>> 51:             if (!laf.getClassName().contains("Aqua")) {
> 
> Why can't this test be set to require windows or linux OS's in the test tags rather than use this if-statement?

We could probably just exclude macos in the jtreg tags instead. But that would also mean that we can't run the test on macos on a different L&F. Should this test be run on, for example, metal on macos?

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

PR Review Comment: https://git.openjdk.org/jdk/pull/19170#discussion_r1600885145


More information about the client-libs-dev mailing list