RFR: 8348744: Application window not always activated on macOS 15

Kevin Rushforth kcr at openjdk.org
Tue Jan 28 16:14:52 UTC 2025


On Tue, 28 Jan 2025 15:35:07 GMT, Andy Goryachev <angorya at openjdk.org> wrote:

>> The fix for [JDK-8319066](https://bugs.openjdk.org/browse/JDK-8319066) added a needed call to activate a JavaFX window on macOS 14 or later via `[NSApp activate]`. In macOS 15, this doesn't always activate the window; even on macOS 14 there are certain cases where it might not. In all other places where we need to activate a window we call `[NSApp activateIgnoringOtherApps:YES]`. This is also what AWT uses in all places.
>> 
>> The fix is to replace the call to `activate` with a call to `activateIgnoringOtherApps`. I ran a full set of headful tests on macOS 15, 14, and 13 (although the code is not executed on  macOS 13), and everything looks good on my end.
>> 
>> Worth noting is that `NSApp::activateIgnoringOtherApps` is deprecated as of MacOS SDK 14, which means that we might have problems in the future when we update the Xcode toolchain (or if they eventually degrade it so that the `ignoringOtherApps` part of this call stops doing anything), but that will be a problem we need to address anyway, affecting other places in  JavaFX and AWT.
>> 
>> I intend to backported this fix to `jfx24` after it is integrated into mainline (for 25).
>
> modules/javafx.graphics/src/main/native-glass/mac/GlassApplication.m line 286:
> 
>> 284:         LOG("-> need to active application");
>> 285:         dispatch_async(dispatch_get_main_queue(), ^{
>> 286:             [NSApp activateIgnoringOtherApps:YES];
> 
> should we add a comment about possible removal of this API in newer platforms?
> (I would suggest also include the JBS reference so the context can be obtained by the person who will be fixing this code in the future).

I don't want to do either of these in this PR. My comment in the PR Description about possible API removal is independent of this bug and something I just happened to notice -- plus it's speculative on my part. I will file a follow-on place-holder bug for this, but there isn't anything actionable at this point. Also, I don't like the practice of putting bug IDs in for fixed bugs except in unusual cases (this isn't one of them).

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

PR Review Comment: https://git.openjdk.org/jfx/pull/1685#discussion_r1932460818


More information about the openjfx-dev mailing list