New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
8231513: JavaFX cause Keystroke Receiving prompt on MacOS 10.15 (Catalina) #102
8231513: JavaFX cause Keystroke Receiving prompt on MacOS 10.15 (Catalina) #102
Conversation
👋 Welcome back kcr! A progress list of the required criteria for merging this PR into |
/reviewers 2 |
@kevinrushforth |
@arapte can you be one of the reviewers? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks OK to me.
Webrevs
|
modules/javafx.graphics/src/main/native-glass/mac/GlassTouches.m
Outdated
Show resolved
Hide resolved
Pushed a fix to address the review comments. @rwestberg for some reason the above commit didn't send an RFR reply to openjfx-dev nor did it produce a new webrev (it did rerun jcheck as expected). |
@kevinrushforth This change now passes all automated pre-integration checks. When the change also fulfills all project specific requirements, type
Since the source branch of this PR was last updated there has been 1 commit pushed to the ➡️ To integrate this PR with the above commit message, type |
/integrate |
@kevinrushforth The following commits have been pushed to jfx14 since your change was applied:
Your commit was automatically rebased without conflicts. Pushed as commit 2ab40c1. |
Mailing list message from Kevin Rushforth on openjfx-dev: Changeset: 2ab40c1 8231513: JavaFX cause Keystroke Receiving prompt on MacOS 10.15 (Catalina) Reviewed-by: prr, jvos ! modules/javafx.graphics/src/main/native-glass/mac/GlassTouches.m |
Mailing list message from Kevin Rushforth on openjfx-dev: Changeset: 2ab40c1 8231513: JavaFX cause Keystroke Receiving prompt on MacOS 10.15 (Catalina) Reviewed-by: prr, jvos ! modules/javafx.graphics/src/main/native-glass/mac/GlassTouches.m |
This is a fix for 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 on openjfx-dev for more discussion.
Progress
Issue
JDK-8231513: JavaFX cause Keystroke Receiving prompt on MacOS 10.15 (Catalina)
Approvers