Hi,
I've looked over the code and tested on Ubuntu 18.04 and can confirm it
works
as well as the JDK 11 code does.
I reproduced the problems Semyon noted that are present on JDK 11 as well.
The UI hang when switching themes is not specific to using GTK3 - it
occurs with
GTK2 as well, and not specific to Ubuntu 18.04, it occurs on Ubuntu
16.04 too.
"AWT-EventQueue-0" #14 prio=6 os_prio=0 cpu=1537.25ms elapsed=16.86s
tid=0x00007f7d2c6dc000 nid=0x4a32 runnable [0x00007f7cca817000]
java.lang.Thread.State: RUNNABLE
at
com.sun.java.swing.plaf.gtk.GTKEngine.native_switch_theme(java.desktop/Native
Method)
at
com.sun.java.swing.plaf.gtk.GTKEngine.themeChanged(java.desktop/GTKEngine.java:625)
- locked <0x0000000706613b68> (a java.lang.Object)
at
com.sun.java.swing.plaf.gtk.GTKLookAndFeel$WeakPCL$1.run(java.desktop/GTKLookAndFeel.java:1496)
....
It does NOT occur with current JDK 8u, so there is something in the GTK
3 work
causing it. This is not a stopper for the backport since switching
themes is unlikely / rare.
But we should file bugs against that and the rendering issues and fix in
JDK 12 and backport
those too - as a follow on as at least some of these could be blockers
for GTK3 on by default in 8u.
"+1" to this main backport.
-phil.
On 10/08/2018 01:23 AM, Pankaj Bansal wrote:
Hi,
The patch in 02 version no longer applies cleanly as check-ins have been done
since it was created. I have updated the webrev. Also fixed the whitespace in
gtk2_interface.c
Webrev:
http://cr.openjdk.java.net/~pbansal/gtk3_backport/webrev.03/
Regards,
Pankaj
-----Original Message-----
From: Kevin Rushforth
Sent: Wednesday, September 12, 2018 8:19 PM
To: Pankaj Bansal; awt-dev@openjdk.java.net; swing-...@openjdk.java.net
Subject: Re: <AWT Dev> <Swing Dev> [8u-backport] JDK 8145547: [AWT/Swing]
Conditional support for GTK 3 on Linux
Looks fine. Btw, you have a trailing whitespace in gtk2_interface.c that you
need to fix before you push (jcheck will tell you about that).
-- Kevin
On 9/12/2018 5:29 AM, Pankaj Bansal wrote:
Hi,
I have found a small mistake in gtk_interface.c. I had used wrong name of gtk3
lib at line 56. I have correct the same in webrev.02.
It is just a typo and should not have any effect on functionality. All should
work the same as 01 version.
Webrev:
http://cr.openjdk.java.net/~pbansal/gtk3_backport/webrev.02/
Regards,
Pankaj
-----Original Message-----
From: Kevin Rushforth
Sent: Saturday, September 8, 2018 1:53 AM
To: Pankaj Bansal; Sergey Bylokhov; awt-dev@openjdk.java.net;
swing-...@openjdk.java.net
Subject: Re: <AWT Dev> <Swing Dev> [8u-backport] JDK 8145547:
[AWT/Swing] Conditional support for GTK 3 on Linux
I tested various combinations of Swing / FX interop and it all looks fine to
me. I only glanced through the AWT code changes, though, but I didn't spot
anything amiss.
-- Kevin
On 9/6/2018 4:35 AM, Pankaj Bansal wrote:
Hello Sergey/Kevin,
I have removed the backport for
https://bugs.openjdk.java.net/browse/JDK-8154546 : Retire
sun.misc.GThreadHelper. I did a clean build and tried few tests for Swing-FX
interop. They all run fine. I have attached the link to tests if you would like
to have a look. I did run the awt and swing jtreg tests also.
Webrev: http://cr.openjdk.java.net/~pbansal/gtk3_backport/webrev.01/
SwingFXInteropTests:
http://cr.openjdk.java.net/~pbansal/gtk3_backport/SwingFXInteropTests
/
Please let me know if you would like me to do some further testing for Swing-FX
interop.
Regards,
Pankaj Bansal
-----Original Message-----
From: Kevin Rushforth
Sent: Thursday, September 6, 2018 3:29 AM
To: Sergey Bylokhov; Pankaj Bansal; awt-dev@openjdk.java.net;
swing-...@openjdk.java.net
Subject: Re: <AWT Dev> <Swing Dev> [8u-backport] JDK 8145547:
[AWT/Swing] Conditional support for GTK 3 on Linux
The simple testing that I did -- one each of a Swing app + JFXPanel
and a JavaFX app + SwingNode -- worked for me on my local build after
restoring that file. Some additional testing (necessarily limited to
GTK
2 until the FX backport for GTK 3 is done) might be needed.
-- Kevin
On 9/5/2018 2:35 PM, Sergey Bylokhov wrote:
HI, Pankaj.
Can you please recheck that FX<-->Swing interop still works?
Probably there are some other than GThreadHelper issues
On 05/09/2018 11:44, Pankaj Bansal wrote:
Hello Kevin,
Thanks for pointing it out. I will remove this fix for now. I hope
its ok, if I create new webrev when I get some more comments here.
Regards,
Pankaj Bansal
*From:*Kevin Rushforth
*Sent:* Wednesday, September 5, 2018 10:29 PM
*To:* Pankaj Bansal; awt-dev@openjdk.java.net;
swing-...@openjdk.java.net
*Subject:* Re: <AWT Dev> [8u-backport] JDK 8145547: [AWT/Swing]
Conditional support for GTK 3 on Linux
The backport of the following fix, which removes
sun.misc.GThreadHelper, will break all FX interop applications,
even if GTK2 is used:
https://bugs.openjdk.java.net/browse/JDK-8154546 : Retire
sun.misc.GThreadHelper
The FX GTK port still uses that class, so the class needs to be
left in until after the FX support for GTK 3 has been backported.
-- Kevin
On 9/5/2018 12:56 AM, Pankaj Bansal wrote:
Hi All,
Please review the patch for 8u-dev backport for JDK-8145547.
It adds
conditional support for gtk3.
The original fix does not apply cleanly as few changes were
done in
jdk9 before the gtk3 support was added, major once being
JDK-8025815
<https://bugs.openjdk.java.net/browse/JDK-8025815>, JDK-8014212
<https://bugs.openjdk.java.net/browse/JDK-8014212> and
JDK-8137571
<https://bugs.openjdk.java.net/browse/JDK-8137571>
Along with the enhancement, following bug fixes have also been
included in the backport webrev
1.https://bugs.openjdk.java.net/browse/JDK-8155772:
gtk3_interface.c
compilation error on Ubuntu 12.10
2.https://bugs.openjdk.java.net/browse/JDK-8156020: 8145547
breaks
AIX and and uses RTLD_NOLOAD incorrectly
3.https://bugs.openjdk.java.net/browse/JDK-8156121: Fail forward"
fails for GTK3 if no GTK2 available
4.https://bugs.openjdk.java.net/browse/JDK-8156128: Tests for
[AWT/Swing] Conditional support for GTK 3 on Linux
5.https://bugs.openjdk.java.net/browse/JDK-8157827:
AWT_Desktop/Automated/Exceptions/BasicTest loads incorrect GTK
version when jdk.gtk.version=3
6.https://bugs.openjdk.java.net/browse/JDK-8160160: The menu
displayed nothing with the option"-server -d64 -Xmixed
-Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel".
7.https://bugs.openjdk.java.net/browse/JDK-8191041:
Questionable
Rendering of Disabled Text in Swing GTK L&F
8.https://bugs.openjdk.java.net/browse/JDK-8203003: Several
FileDialog Modality Tests fail on Linux due to X errors
9.https://bugs.openjdk.java.net/browse/JDK-8155784: Build
failure on
Linux arm64
10.https://bugs.openjdk.java.net/browse/JDK-8154546: Retire
sun.misc.GThreadHelper
11.https://bugs.openjdk.java.net/browse/JDK-8152968: JTree
Collapse
Buttons Clipped Off Under GTK
12.https://bugs.openjdk.java.net/browse/JDK-8160448: Make
GTK3 menus
appearence similar to native.
13.https://bugs.openjdk.java.net/browse/JDK-8155613: [PIT]
crash in
AWT_Desktop/Automated/Exceptions/BasicTest
14.https://bugs.openjdk.java.net/browse/JDK-8160054: The
FileChooser
didn't displayed large font with GTK LAF option.
15.https://bugs.openjdk.java.net/browse/JDK-8164321: Crash of
SwingNode with GTK LaF
16.https://bugs.openjdk.java.net/browse/JDK-8161740: [parfait]
Memory leak in Java_sun_awt_UNIXToolkit_load_1gtk_1icon of
awt_UNIXToolkit.c:132
17.https://bugs.openjdk.java.net/browse/JDK-8168077: Solaris
build
failed: gtk2_interface.h typedef redeclared: GThreadFunctions
webrev:
http://cr.openjdk.java.net/~pbansal/gtk3_backport/webrev.00/
<http://cr.openjdk.java.net/%7Epbansal/gtk3_backport/webrev.00/>
JBS: https://bugs.openjdk.java.net/browse/JDK-8145547
JDK 9 Changeset:
http://hg.openjdk.java.net/jdk9/client/jdk/rev/6d60dfa5e3f8
I have run the related jtreg and jck tests and results are fine.
Regards,
Pankaj