On Wed, 26 Nov 2025 19:16:37 GMT, Andy Goryachev <[email protected]> wrote:
>> In the macOS glass code an owned window is referred to as a child window and >> its owner is referred to as the parent. When a parent is iconified the glass >> code "iconifies" its children which is to say it hides them. Under the right >> circumstances the children may get ordered back to the front and made >> visible almost immediately. >> >> Details are in the bug report but when a window is iconified it may trigger >> the OS to notify every window that its NSScreen has changed (yes, this is >> weird). This causes reorderChildWindows to be called on the newly iconified >> parent and the process of re-ordering the child windows can cause hidden >> windows to be made visible. For some reason the NSScreen strangeness only >> happens if "System Settings > Desktop & Dock > Minimize windows into >> application icon" is turned OFF. This is not the first time we've >> encountered this, see >> [JDK-8353902](https://bugs.openjdk.org/browse/JDK-8353902) >> >> This PR fixes the problem in two ways. If reorderChildWindows is called on >> an iconified window it does nothing. If one of the child windows is hidden >> it is not re-ordered since that might make it visible. > > modules/javafx.graphics/src/main/native-glass/mac/GlassWindow.m line 379: > >> 377: [child->nsWindow setLevel:level]; >> 378: // Order child above the owner window >> 379: if (child->nsWindow.isVisible) { > > there is no chance for `child->nsWindow` to be `nil`, is there? No, it can't be nil. Given the way Objective-C works it wouldn't crash even if it was nil, isVisible would just return NO. ------------- PR Review Comment: https://git.openjdk.org/jfx/pull/1985#discussion_r2566450556
