diff --git a/modules/javafx.graphics/src/main/native-glass/mac/GlassWindow.m b/modules/javafx.graphics/src/main/native-glass/mac/GlassWindow.m index 946684770b..27fe2244d5 100644 --- a/modules/javafx.graphics/src/main/native-glass/mac/GlassWindow.m +++ b/modules/javafx.graphics/src/main/native-glass/mac/GlassWindow.m @@ -819,21 +819,25 @@ static jlong _createWindowCommonDo(JNIEnv *env, jobject jWindow, jlong jOwnerPtr GlassWindow *window = getGlassWindow(env, jPtr); window->isEnabled = (BOOL)isEnabled; NSButton *zoomButton = [window->nsWindow standardWindowButton:NSWindowZoomButton]; - if ((window->isEnabled) && (window->isResizable)){ - [window->nsWindow setStyleMask: window->enabledStyleMask]; + NSUInteger styleMask = (NSUInteger)(NSWindowStyleMaskMiniaturizable | NSWindowStyleMaskResizable); + if ((window->isEnabled) && (window->isResizable)) { + // Restore miniaturizable and resizable styles + [window->nsWindow setStyleMask: ([window->nsWindow styleMask] & ~styleMask) | window->enabledStyleMask]; if (window->enabledStyleMask & NSWindowStyleMaskResizable) { [zoomButton setEnabled:YES]; } } - else if((window->isEnabled) && (!window->isResizable)){ + else if((window->isEnabled) && (!window->isResizable)) { + // Restore miniaturizable style, clear resizable style [window->nsWindow setStyleMask: - (window->enabledStyleMask & ~(NSUInteger) NSWindowStyleMaskResizable)]; + ([window->nsWindow styleMask] & ~styleMask) | (window->enabledStyleMask & ~(NSUInteger) NSWindowStyleMaskResizable)]; [zoomButton setEnabled:NO]; } - else{ - window->enabledStyleMask = [window->nsWindow styleMask]; + else { + // Save miniaturizable and resizable styles and then clear them + window->enabledStyleMask = [window->nsWindow styleMask] & styleMask; [window->nsWindow setStyleMask: - (window->enabledStyleMask & ~(NSUInteger)(NSWindowStyleMaskMiniaturizable | NSWindowStyleMaskResizable))]; + [window->nsWindow styleMask] & ~styleMask]; [zoomButton setEnabled:NO]; } }