On Fri, 24 May 2024 06:44:06 GMT, Abhishek Kumar <abhis...@openjdk.org> wrote:
> bug6492108.java test always fails in GTK L&F in single as well as dual screen > linux machines. Since this test was not marked as "_headful_" in it's initial > version, it never failed but after the fix of > [JDK-8287051](https://bugs.openjdk.org/browse/JDK-8287051) this test was > problem listed as it always > failed which is captured in the JBS. > The reason of failure is the pixel color mismatch between JEditorPane and > JTextArea/JTextPane which is caused by the JEditorPane's default opaque value > which is false for GTK3 at > [L767](https://github.com/kumarabhi006/jdk/blob/c642f44bbe1e4cdbc23496a34ddaae30990ce7c0/src/java.desktop/share/classes/com/sun/java/swing/plaf/gtk/GTKStyle.java#L767). > In initial load JEditorPane, JTextArea and JTextPane components are opaque at > [L718](https://github.com/kumarabhi006/jdk/blame/6c7656678916ff3f5c9fc70efcbb69ce76801458/jdk/src/java.desktop/share/classes/com/sun/java/swing/plaf/gtk/GTKStyle.java#L718) > but after the fix for > [JDK-8145547](https://bugs.openjdk.org/browse/JDK-8145547) the implementation > was changed to provide conditional support for GTK3 on linux where few > components like Editor Pane, Formatted text Field, Password Field etc are > opaque only if the [GTK version is not > 3](https://github.com/kumarabhi006/jdk/blame/73d2181d56063f6015e4fc42e130591bee39bc36/src/java.desktop/share/classes/com/sun/java/swing/plaf/gtk/GTKStyle.java#L746C21-L746C21). > JTextPane's issue was observed by > [JDK-8218479](https://bugs.openjdk.org/browse/JDK-8218479) and then the > default opacity is set to true for JTextPane [irrespective of GTK > version](https://github.com/kumarabhi006/jdk/blame/c642f44bbe1e4cdbc23496a34ddaae30990ce7c0/src/java.desktop/share/classes/com/sun/java/swing/plaf/gtk/GTKStyle.java#L750C16-L750C16). > Extending the fix in isOpaque() method in GTKStyle.java for JEditorPane > similar to JTextPane resolves the issue. > > Test verified in both single and dual screen linux machines. test/jdk/com/sun/java/swing/plaf/gtk/bug6492108.java line 47: > 45: * JTextArea, JTextPane, and JEditorPane. > 46: * @library /javax/swing/regtesthelpers > 47: * @build SwingTestHelper Should this test be marked only for linux? test/jdk/com/sun/java/swing/plaf/gtk/bug6492108.java line 82: > 80: > 81: text = type.newInstance(); > 82: if (showText) text.setText(name + "\ndisabled"); `showText` is never initialized, meaning this condition is never executed. Can be removed? test/jdk/com/sun/java/swing/plaf/gtk/bug6492108.java line 159: > 157: } > 158: > 159: public void onBackgroundThread30() { Unused, can be removed? ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/19381#discussion_r1619999777 PR Review Comment: https://git.openjdk.org/jdk/pull/19381#discussion_r1619993840 PR Review Comment: https://git.openjdk.org/jdk/pull/19381#discussion_r1619995191