On Thu, 3 Dec 2020 17:39:08 GMT, Kevin Rushforth <k...@openjdk.org> wrote:

>> This is a proposed fix for the bug where the Apple system menubar is 
>> initially non-responsive on macOS 10.15 and later after a JavaFX application 
>> has started up. The end user can workaround this by switching to some other 
>> application and then back to the JavaFX app, but there is no known 
>> workaround that the application developer can use.
>> 
>> JavaFX is using a non-standard approach to creating the system menus, and 
>> seems likely that some change in macOS 10.15 means that this no longer works 
>> the same as in previous versions of macOS. We have had problems with 
>> application startup on macOS in the past that affected the system menubar: 
>> see [JDK-8123430](https://bugs.openjdk.java.net/browse/JDK-8123430) and 
>> [JDK-8093743](https://bugs.openjdk.java.net/browse/JDK-8093743).
>> 
>> The solution is to deactivate and then reactivate the application after the 
>> app has initially been made active, but before any window is initialized and 
>> before the system menu is populated.
>> 
>> I pushed this as two commits: one with the fix and one with some temporary 
>> verbose debug print statements. I will remove the print statements prior to 
>> the formal review, but wanted to leave them in for now in case someone 
>> wanted to test them, and ran into an issue (the debug print statements could 
>> help isolate any problems).
>> 
>> I have tested this on macOS 10.14, 10.15, and 11 (Big Sur). It will need 
>> additional testing.
>> 
>> The only drawback I see with this approach is that there can be a very brief 
>> flash when launching the JavaFX app from a  terminal window as the FX 
>> application activates, deactivates, and reactivates.
>
> Kevin Rushforth has updated the pull request incrementally with one 
> additional commit since the last revision:
> 
>   Address review comments

modules/javafx.graphics/src/main/java/com/sun/glass/ui/mac/MacApplication.java 
line 103:

> 101:     private final CountDownLatch reactivationLatch = new 
> CountDownLatch(1);
> 102: 
> 103:     // Spin up a nested even loop waiting for the app reactivation event

I just spotted a typo in this comment: even --> event

I'll wait to see if there are suggested changes from other reviewers, and then 
fix this.

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

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

Reply via email to