[Rev 01] RFR: 8243255: Font size is large in JavaFX app with enabled Monocle on Raspberry Pi

Kevin Rushforth kcr at openjdk.java.net
Mon Apr 27 23:54:00 UTC 2020

On Mon, 27 Apr 2020 11:09:51 GMT, Alexander Scherbatiy <alexsch at openjdk.org> wrote:

>> See the detailed issue description on: http://mail.openjdk.java.net/pipermail/openjfx-dev/2020-April/025975.html
>> The fix 8236448 https://github.com/openjdk/jfx/pull/75 changes
>> [MonocleApplication.staticScreen_getScreens()](https://github.com/openjdk/jfx/pull/75/files#diff-b66ff7fe72c6c5cd26003572ca901bfdL228)
>> method code from
>>> ns.getDPI(), ns.getDPI(), ns.getScale(), ns.getScale(), ns.getScale(), ns.getScale()
>>  to
>>  > ns.getWidth(), ns.getHeight(), 1.f, 1.f, ns.getScale(), ns.getScale()"
>> so the font size is not properly calculated based on the given DPI value.
>> I left the platformScaleX and platformScaleY as 1.f because I do not know how it affects Android/Dalvik platform. On
>> Raspberry Pi where I run JavaFX code with Monocle the DispmanScreen is used which have fixed scale 1.0 value so the app
>> works in the same way.
> Alexander Scherbatiy has updated the pull request incrementally with one additional commit since the last revision:
>   Search javafx.platform.properties in jfx-runtime/lib directory

modules/javafx.base/src/main/java/com/sun/javafx/PlatformUtil.java line 241:

> 240:                     s.lastIndexOf('/'), s.lastIndexOf('\\'));
> 241:             return new File(new URL(s.substring(0, lastIndexOfSlash + 1)).getPath());
> 242:         } catch (MalformedURLException e) {

The previous code looks like a hold-over from JDK 8, where jfxrt.jar was in `lib/ext`. It also assumes that the JavaFX
runtime is being loaded from a jar URL, which isn't necessarily the case. Probably the only reason it hasn't caused
problems before now is that it is only used to locate `javafx.platform.properties`. Worth noting is that we won't get
here in the case JavaFX is jlinked into the Java runtime, although in that case, the fallback method of locating it
relative to the JDK should be used.

I'll take a closer look this specific change, but I think it should be OK.

I'll defer the review as a whole to Johan.


PR: https://git.openjdk.java.net/jfx/pull/193

More information about the openjfx-dev mailing list