fix: Do not activate app when calling focus on inactive panel window (#40307)

* fix: Do not activate app when calling focus on inactive panel window

* Use activate

* Use "activate" for all windows
This commit is contained in:
Felix Rieseberg 2023-11-06 13:38:12 -08:00 committed by GitHub
parent 7999ea39e2
commit b55d7f4a16
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 48 additions and 1 deletions

View file

@ -469,7 +469,20 @@ void NativeWindowMac::Focus(bool focus) {
return;
if (focus) {
[[NSApplication sharedApplication] activateIgnoringOtherApps:NO];
// On macOS < Sonoma, "activateIgnoringOtherApps:NO" would not
// activate apps if focusing a window that is inActive. That
// changed with macOS Sonoma.
//
// There's a slim chance we should have never called
// activateIgnoringOtherApps, but we tried that many years ago
// and saw weird focus bugs on other macOS versions. So, to make
// this safe, we're gating by versions.
if (@available(macOS 14.0, *)) {
[[NSApplication sharedApplication] activate];
} else {
[[NSApplication sharedApplication] activateIgnoringOtherApps:NO];
}
[window_ makeKeyAndOrderFront:nil];
} else {
[window_ orderOut:nil];