diff --git a/src/plugins/platforms/cocoa/qcocoawindow.mm b/src/plugins/platforms/cocoa/qcocoawindow.mm index 0dec048..c6c562d 100644 --- a/src/plugins/platforms/cocoa/qcocoawindow.mm +++ b/src/plugins/platforms/cocoa/qcocoawindow.mm @@ -432,26 +432,27 @@ NSUInteger QCocoaWindow::windowStyleMask(Qt::WindowFlags flags) Qt::WindowType type = static_cast(int(flags & Qt::WindowType_Mask)); NSInteger styleMask = NSBorderlessWindowMask; - if ((type & Qt::Popup) == Qt::Popup) { - if (!windowIsPopupType(type) && !(flags & Qt::FramelessWindowHint)) - styleMask = (NSUtilityWindowMask | NSResizableWindowMask | NSClosableWindowMask | - NSMiniaturizableWindowMask | NSTitledWindowMask); - } else { - // Filter flags for supported properties - flags &= Qt::WindowType_Mask | Qt::FramelessWindowHint | Qt::WindowTitleHint | - Qt::WindowMinMaxButtonsHint | Qt::WindowCloseButtonHint; - if (flags == Qt::Window) { - styleMask = (NSResizableWindowMask | NSClosableWindowMask | NSMiniaturizableWindowMask | NSTitledWindowMask); - } else if ((flags & Qt::Dialog) == Qt::Dialog) { - if (window()->modality() == Qt::NonModal) - styleMask = NSResizableWindowMask | NSClosableWindowMask | NSTitledWindowMask; - else - styleMask = NSResizableWindowMask | NSTitledWindowMask; - } else if (!(flags & Qt::FramelessWindowHint)) { - if ((flags & Qt::Dialog) || (flags & Qt::WindowMaximizeButtonHint)) + + // Filter flags for supported properties + flags &= Qt::WindowType_Mask | Qt::FramelessWindowHint | Qt::WindowTitleHint | + Qt::WindowMinMaxButtonsHint | Qt::WindowCloseButtonHint | Qt::CustomizeWindowHint; + + if((flags & Qt::FramelessWindowHint) == 0 && !windowIsPopupType(type)) + { + styleMask = NSTitledWindowMask; + if ((flags & Qt::Tool) == Qt::Tool) + styleMask |= NSUtilityWindowMask; + + if((flags & Qt::CustomizeWindowHint) == 0 ) + { + styleMask |= NSClosableWindowMask; + if (!((flags & Qt::Dialog) == Qt::Dialog) && !((flags & Qt::Tool) == Qt::Tool)) + styleMask |= NSResizableWindowMask | NSMiniaturizableWindowMask; + } + else + { + if (flags & Qt::WindowMaximizeButtonHint) styleMask |= NSResizableWindowMask; - if (flags & Qt::WindowTitleHint) - styleMask |= NSTitledWindowMask; if (flags & Qt::WindowCloseButtonHint) styleMask |= NSClosableWindowMask; if (flags & Qt::WindowMinimizeButtonHint)