RFR: 8231513: JavaFX cause Keystroke Receiving prompt on MacOS 10.15 (Catalina)
Kevin Rushforth
kevin.rushforth at oracle.com
Thu Jan 30 23:59:19 UTC 2020
The Skara bot isn't sending email at the moment, so here is an RFR for
jfx14:
PR: https://github.com/openjdk/jfx/pull/102
JBS: https://bugs.openjdk.java.net/browse/JDK-8231513
This is a fix for
[JDK-8231513](https://bugs.openjdk.java.net/browse/JDK-8231513) to
disable the use of `CGEventTap` when running on macOS 10.15 or later.
The effect of this bug is that a scary dialog is shown for all users the
first time they run a JavaFX application and move the mouse is moved
into the JavaFX window. It also is reported to block apps from being
accepted in the Apple store.
This bug is caused by a change in macOS 10.15 to require additional
permissions for using CGEventTap, which JavaFX uses to track touch events.
The suggested replacement API,
`NSEvent::addLocalMonitorForEventsMatchingMask`, works just differently
enough (it tracks events delivered to a specific view, whereas the
current code is implemented using a global monitor and a global set of
touch points), that it would be too risky to change it this late in the
release.
For openjfx14, I am proposing to disable touch events completely if
running on macOS 10.15 (or later). This will disable the tracking of
native touch events, but those events are not used by default on macOS
anyway. For Mac systems with a trackpad we instead rely on macOS to do
the gesture recognition by default, and this fix does not intefere with
that functionality.
I have verified that this avoids the dialog on macOS 10.15 and that the
HelloGestures program still runs correctly and still recognizes trackpad
gestures such as zoom and rotate. I also verified that the changes don't
affect macOS 10.14 or earlier (the Event Tap code is still enabled on
those older OS versions).
See [this
thread](https://mail.openjdk.java.net/pipermail/openjfx-dev/2020-January/024876.html)
on openjfx-dev for more discussion.
-- Kevin
More information about the openjfx-dev
mailing list