On Thu, 21 Sep 2023 19:10:38 GMT, Kevin Rushforth <k...@openjdk.org> wrote:
> The fix for [JDK-8233678](https://bugs.openjdk.org/browse/JDK-8233678) added > a step to the NSApplication initialization to deactivate and then reactivate > the application. We trigger the deactivation the first time > applicationDidBecomeActive is called. We then trigger the reactivation the > when applicationDidResignActive is called after that. The initialization > logic in MacApplication spins up a nested event loop that waits for the > reactivation (a second call to applicationDidBecomeActive). > > Something in macOS 14 has changed that prevents the initial call to > applicationDidBecomeActive from being done until the application has finished > launching (notifyDidFinishLaunching). > > So the activation of the NSApplication is waiting for the launching to be > finished, but the nested event loop we spin up is blocking the completion of > launching until we get the activation. This is a classic deadlock. > > The good news, though, is the deactivation / reactivation of the application > no longer seems to be needed on macOS 14. The menus work fine without that > fix. > > The proposed solution is to check the version of macOS and only enable the > deactivation / reactivation logic on systems prior to macOS 14. This will > have the additional benefit of avoiding the brief flash when the app is first > launched (see [JDK-8257835](https://bugs.openjdk.org/browse/JDK-8257835)). > > This is a Draft PR with a few debugging statements. Once I get some feedback > that it works for more than just me, I'll remove the debugging statements and > then make it "rfr". Because I updated my Laptop to Sonoma (so I find bugs earlier) - I was able to test it! With this branch, I no longer get the following warning: [error] Sep 22, 2023 3:12:18 PM com.sun.glass.ui.mac.MacApplication lambda$waitForReactivation$6 [error] WARNING: Timeout while waiting for app reactivation ``` And the mysterious (did anyone notice?) 5 Seconds freeze before showing the App is also gone! So, I can confirm this fixes these important Sonoma bugs! ------------- PR Comment: https://git.openjdk.org/jfx/pull/1247#issuecomment-1731439919