On Sat, 1 Feb 2020 08:38:08 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.
> 
> The pull request has been updated with 1 additional commit.

Marked as reviewed by jvos (Reviewer).

-------------

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

Reply via email to