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.

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

Commit messages:
 - Remove debug print statements and turn off verbose logging
 - Fix cases where the app is not a normal app (e.g., JFXPanel, FXCanvas and 
non-taskbar apps)
 - TEMPORARY: enabled verbose debug print statements (will be reverted before 
finalising the PR)
 - 8233678: [macos 10.15] System menu bar does not work initially on macOS 
Catalina

Changes: https://git.openjdk.java.net/jfx/pull/361/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jfx&pr=361&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8233678
  Stats: 103 lines in 4 files changed: 88 ins; 0 del; 15 mod
  Patch: https://git.openjdk.java.net/jfx/pull/361.diff
  Fetch: git fetch https://git.openjdk.java.net/jfx pull/361/head:pull/361

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

Reply via email to