Support for GTK 2 & 3 now in JFX
Jim Graham
james.graham at oracle.com
Wed May 18 01:06:30 UTC 2016
Hi Erik,
I tried testing our build under a Gentoo LiveCD. Even the minimal
environment of the LiveCD has the org.gnome.desktop.interface schema
defined so I'm not sure how minimal your environment was. I did
discover that, although the schema was there, it had a value of "0" for
the scaling-factor which caused us to create bogus logical screen sizes
that probably caused the exception you saw, so simply finding that
schema and key is not enough for us to trust the value. I'll add some
protection for bad data from the key, but I'm curious to find out how
minimal your install was and whether we should simply state our
dependency, or if your configuration is likely to be common enough that
we should protect against it in our code...?
Also, what does:
% gsettings get org.gnome.desktop.interface scaling-factor
return for your system? If you set it to "1", does FX come up fine?
...jim
On 05/16/2016 01:01 PM, Jim Graham wrote:
> These may both be related to the HiDPI fix instead. I added a usage of
> g_settings in that fix that went in on Friday. It looks like I'll have
> to check for the schema existing before I access it.
>
> Can you file a bug report?
>
> (On a side note, the call that grabs the schema does not have a "schema
> not known" return value - if you ask for a schema that doesn't exist
> they abort your application. Seems kind of drastic, but the bug reports
> that request that they simply return null were met with push back
> because the developers couldn't imagine why anyone would want such a
> thing (huh?) and later an attempt to return NULL on unrecognized schemas
> and keys had to be backed out because of the huge disaster the NULL
> values caused (and somehow ABORT'ing on behalf of the application is
> better in that case?). Unfortunately I don't see much sanity in those
> APIs or any support for a case like this of "I'd like to get that value,
> but if you haven't heard of it, that's fine as I have a backup plan".
> The only way around this will be to enumerate all schemas and all keys
> and see if the ones we want are found in the list - a rather extreme
> workaround for bad error handling behavior in their APIs...)
>
> ...jim
>
> On 05/16/2016 05:15 AM, Erik De Rijcke wrote:
>> I ran into several issues, however I'm not sure they are related to gtk3
>>
>> first of all it seems there is a dependency on:
>> gsettings-desktop-schemas.
>> I'm not sure how desirable this is (I did not have it installed,
>> installing
>> it fixed the error but I can image people not wanting to install it?)
>>
>> Second, and this seems unrelated to gtk(3?), the screen initialization
>> fails (test was done using gentoo linux on virtualbox with windows 7 as
>> host):
>>
>> Exception in thread "JavaFX Application Thread"
>> java.lang.IllegalArgumentException: Both width and height must be >= 0
>>
>> at javafx.geometry.Rectangle2D.<init>(Rectangle2D.java:104)
>> at javafx.stage.Screen.nativeToScreen(Screen.java:152)
>> at javafx.stage.Screen.updateConfiguration(Screen.java:88)
>> at javafx.stage.Screen.checkDirty(Screen.java:82)
>> at javafx.stage.Screen.getPrimary(Screen.java:185)
>> at
>> com.sun.javafx.tk.quantum.QuantumToolkit.initSceneGraph(QuantumToolkit.java:298)
>>
>> at
>> com.sun.javafx.tk.quantum.QuantumToolkit.runToolkit(QuantumToolkit.java:340)
>>
>> at
>> com.sun.javafx.tk.quantum.QuantumToolkit.lambda$startup$10(QuantumToolkit.java:257)
>>
>> at com.sun.glass.ui.Application.lambda$run$1(Application.java:155)
>> at com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
>> at
>> com.sun.glass.ui.gtk.GtkApplication.lambda$runLoop$7(GtkApplication.java:194)
>>
>> at java.lang.Thread.run(Thread.java:804)
>>
>>
>> Nearly all values seem to be -2147483648
>>
>>
>> I used openjdk9 109 as per instructions of the wiki, and the latest
>> javafx
>> dev.
>>
>>
>> On Mon, May 9, 2016 at 8:56 PM, Jim Graham <james.graham at oracle.com>
>> wrote:
>>
>>> Should we integrate that into prism.verbose output?
>>>
>>> ...jim
>>>
>>>
>>> On 5/9/16 6:18 AM, David Hill wrote:
>>>
>>>>
>>>> I added a new feature Friday and would like some help testing it.
>>>>
>>>> This new feature (8087516: Conditional support for GTK 3 on Linux)
>>>> allows
>>>> us to use either GTK v2 or 3 with JavaFX.
>>>>
>>>> The default has not changed - we will use gtk 2 by preference.
>>>>
>>>> The help I need is for anyone doing testing on Linux with the current
>>>> tree - like todays sanity testing. Adding
>>>>
>>>> -Djdk.gtk.verbose=true
>>>>
>>>> should output the version detected and used. I would appreciate a paste
>>>> of that along with the OS version.
>>>>
>>>> -Djdk.gtk.version=3
>>>>
>>>> toggles the preferred version to GTK 3. Testing using that toggled
>>>> would
>>>> also be appreciated, along with a note to me
>>>> with the OS version.
>>>>
>>>> thanks!
>>>>
>>>>
More information about the openjfx-dev
mailing list