On 4/23/16, 4:22 PM, Tom Schindl wrote:
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!
There is an interesting idea. I had not thought about using java reflection. 
The newness of the variable is a down side though.

Will have to try some stuff once I get the initial - non-detecting work cleaned 
up enough to get in place. In particular - a last look at using dlopen, and 
maybe the proc stuff.

The detection code could go in as a bug fix after the initial submital  of the 
functionality.

Tom, Sounds like you might be able to help us test after we integrate :-)

Dave

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.




--
David Hill<david.h...@oracle.com>
Java Embedded Development

"A man's feet should be planted in his country, but his eyes should survey the 
world."
-- George Santayana (1863 - 1952)

Reply via email to