On Wed, 2 Dec 2020 20:00:55 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.

I note that this does not seem to be a problem for Swing apps. AWT uses the 
Java Runtime Support (JRS) framework to initialize the application and menubar.

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

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

Reply via email to