On Thu, 30 Jan 2020 23:07:53 GMT, Kevin Rushforth <k...@openjdk.org> wrote:
> 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. Looks OK to me. ------------- Marked as reviewed by prr (Reviewer). PR: https://git.openjdk.java.net/jfx/pull/102