cocoa: Use macOS 26.x mouse workaround for all windows, not just fullscreen.

This is a temporary workaround until we understand the issue better.

Reference Issue #15967.

(cherry picked from commit 958c4cbf0d)
This commit is contained in:
Ryan C. Gordon
2026-08-03 02:19:24 -04:00
parent f16d4e81ea
commit c3e06fe741

View File

@@ -1915,16 +1915,19 @@ static void Cocoa_SendMouseButtonClicks(SDL_Mouse *mouse, NSEvent *theEvent, SDL
y = (window->h - point.y);
// On macOS 26 if you move away from a space and then back, mouse motion events will have incorrect
// values at the top of the screen. The global mouse position query is still correct, so we'll fall
// back to that until this is fixed by Apple. Mouse button events are interestingly not affected.
// values at the top of the screen. Apparently non-fullscreen windows suffer from this from time
// to time when mouse leaves/enters a window and/or focus changes, too. The global mouse position query
// is still correct, so we'll fall back to that until this is fixed by Apple. Mouse button events are
// interestingly not affected.
if (@available(macOS 26.0, *)) {
if ([_data.listener isInFullscreenSpace]) {
// do for all windows for now, not just fullscreen spaces. And hopefully remove this code entirely soon.
//if ([_data.listener isInFullscreenSpace]) {
int posx = 0, posy = 0;
SDL_GetWindowPosition(window, &posx, &posy);
SDL_GetGlobalMouseState(&x, &y);
x -= posx;
y -= posy;
}
//}
}
if (NSAppKitVersionNumber >= NSAppKitVersionNumber10_13_2) {