On Tue, 28 Jan 2025 12:35:13 GMT, Kevin Rushforth <k...@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).

Marked as reviewed by jpereda (Reviewer).

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];

I see that the CanvasTest mentioned in the JBS issue passes now with this fix, 
and fails with `[NSApp activate];`

I'm not sure why `[NSApp activateIgnoringOtherApps:YES];` works but `[NSApp 
activate];` doesn't, given that the former is deprecated, as you already 
mentioned, and the latter is what Apple precisely 
[recommends](https://developer.apple.com/documentation/appkit/nsapplication/activate(ignoringotherapps:)?language=objc)
 to use instead.
In any case, probably something for https://bugs.openjdk.org/browse/JDK-8348878.

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

PR Review: https://git.openjdk.org/jfx/pull/1685#pullrequestreview-2578962367
PR Review Comment: https://git.openjdk.org/jfx/pull/1685#discussion_r1932581424

Reply via email to