early draft for 8087516: [JavaFX] Conditional support for GTK 3 on Linux

Philip Race philip.race at oracle.com
Sat Apr 23 18:30:35 UTC 2016

That may be [need to be] ironed out later.
We are not certain there is a 100% reliable mechanism for this.
Some experiments on the AWT equivalent using dlopen(..) with
RTLD_NOLOAD is apparently failing to detect that gtk3 was loaded
in the case it was loaded by SWT.

An alternative but not very pretty approach using /proc has been proposed.
Any boiler plate code that works across all versions of Linux/Unix and
where you do not control the manner in which gtk3 was loaded is proving 

And nothing will help in the case that FX is loaded first and gtk/swt is 
loaded later.


On 4/23/16, 10:32 AM, Tom Schindl wrote:
> David / Kevin,
> Do you see chances to detect for the SWT case if we are running with SWT
> on Gtk3 or Gtk2 and not having to use -Djdk.gtk.version=3
> The problem with requiring one to switch by setting the System-Property
> is that eg if someone want to use FX in the Eclipse IDE he does not
> control the Java-Launch Process.
> Tom
> On 23.04.16 00:50, David Hill wrote:
>> Kevin, Phil, anyone else interested.
>> Here is an early draft of [JavaFX] Conditional support for GTK 3 on
>> Linux<https://bugs.openjdk.java.net/browse/JDK-8087516>
>> http://cr.openjdk.java.net/~ddhill/8087516.1/
>> There are some rough edges left, particularly with the GTK 3 side of
>> shaped windows.
>> Given my time frame, I am interested in feedback on what is there
>> because the core of it is complete.
>> I have done limited testing on this, some with GTK3 and have not found
>> any problems so far. I have more unit testing planned for next week.
>> The default GTK version will be GTK2. To use GTK3, use the following:
>>     -Djdk.gtk.version=3
>> To enable some really verbose output:
>>      -Djdk.gtk.verbose=true
>> This verbosity will be reduced before I commit this - and only a message
>> about the version actually used will be output.
>> Known issues: Marked with a DAVE for easy cleanup later.
>>      * shaped windows with GTK3 - need to verify the new region methods
>>      * debug code that will be used to check that all of the code paths
>> are tested.
>>      * move the disableGrab back into the main code logic.

More information about the openjfx-dev mailing list