Workaround for latest Apple regression in Tahoe

Now NSWindow::close no longer actually closes the window. Sigh. Have to
also set its frame to zero size, otherwise an invisible rect remains
that intercepts mouse events and takes up space in Mission Control.

Life is too short for this shit. Fixes #8952
This commit is contained in:
Kovid Goyal 2025-09-05 17:25:39 +05:30
parent b7c4f42e96
commit d837a64e36
No known key found for this signature in database
GPG key ID: 06BC317B515ACE7C
2 changed files with 9 additions and 1 deletions

View file

@ -171,6 +171,9 @@ Detailed list of changes
- macOS: Pass the :kbd:`Cmd+C` shortcut to the application running in the
terminal when no text is selected (:pull:`8946`)
- macOS: Workaround for bug in macOS Tahoe that caused closed OS Windows to
remain as invisible rectangles that intercept mouse events (:iss:`8952`)
0.42.2 [2025-07-16]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

View file

@ -1927,7 +1927,12 @@ void _glfwPlatformDestroyWindow(_GLFWwindow* window)
window->ns.view = nil;
[window->ns.object removeGLFWWindow];
[window->ns.object close];
// Workaround for macOS Tahoe where if the frame is not set to zero size
// even after NSWindow::close the window remains on screen as an invisible
// rectangle that intercepts mouse events and takes up space in mission
// control. Sigh.
[window->ns.object setFrame:NSMakeRect(0, 0, 0, 0) display:NO];
[window->ns.object close]; // sends a release to the NSWindow so we dont release it here
window->ns.object = nil;
}