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

Reply via email to