early draft for 8087516: [JavaFX] Conditional support for GTK 3 on Linux
David.Hill at Oracle.com
Sun Apr 24 14:43:47 UTC 2016
On 4/23/16, 4:22 PM, Tom Schindl wrote:
> For FXCanvas it should be doable because you can check if SWT is running
> with GTK3 using
> org.eclipse.swt.internal.gtk.OS.GTK3 : boolean
> This is what e(fx)clipse uses today to cancel loading of FXCanvas
> because it would core-dump your application . 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 :-)
> 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
>> 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.
>>> 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
>>>> 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:
>>>> To enable some really verbose output:
>>>> 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.Hill at 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)
More information about the openjfx-dev