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 elusive.

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

-phil.


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.


Reply via email to