Hi, For FXCanvas it should be doable because you can check if SWT is running with GTK3 using
----8<---- org.eclipse.swt.internal.gtk.OS.GTK3 : boolean ----8<---- This is what e(fx)clipse uses today to cancel loading of FXCanvas because it would core-dump your application [1]. IIRC this flag is there since the last SWT release! Tom [1]http://git.eclipse.org/c/efxclipse/org.eclipse.efxclipse.git/tree/bundles/runtime/org.eclipse.fx.osgi/src/org/eclipse/fx/osgi/fxloader/FXClassLoader.java On 23.04.16 20:30, Philip Race wrote: > 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. >>> >> -- Thomas Schindl, CTO BestSolution.at EDV Systemhaus GmbH Eduard-Bodem-Gasse 5-7, A-6020 Innsbruck http://www.bestsolution.at/ Reg. Nr. FN 222302s am Firmenbuchgericht Innsbruck