summaryrefslogtreecommitdiffstats
path: root/src/plugins
diff options
context:
space:
mode:
authorShawn Rutledge <shawn.rutledge@digia.com>2013-06-14 16:42:32 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-10-16 17:10:15 +0200
commit66e3e1f75b9698a8aaa92efeebff89f83afc83c4 (patch)
treebaa06f6fcfe916a0ca4c981e3009e1e300cb6c13 /src/plugins
parent15188f25990e8c10b180e6532cdb6e855ef20200 (diff)
OS X: a dialog should always have an enabled titlebar close button
regardless of modality. Task-number: QTBUG-28385 Task-number: QTCREATORBUG-9264 Change-Id: Iaa608f6e742686d4068547766ec596e37c696a07 Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
Diffstat (limited to 'src/plugins')
-rw-r--r--src/plugins/platforms/cocoa/qcocoawindow.mm16
1 files changed, 11 insertions, 5 deletions
diff --git a/src/plugins/platforms/cocoa/qcocoawindow.mm b/src/plugins/platforms/cocoa/qcocoawindow.mm
index 7bdfd12314..bee6d635ec 100644
--- a/src/plugins/platforms/cocoa/qcocoawindow.mm
+++ b/src/plugins/platforms/cocoa/qcocoawindow.mm
@@ -450,7 +450,6 @@ NSUInteger QCocoaWindow::windowStyleMask(Qt::WindowFlags flags)
{
Qt::WindowType type = static_cast<Qt::WindowType>(int(flags & Qt::WindowType_Mask));
NSInteger styleMask = NSBorderlessWindowMask;
-
if ((type & Qt::Popup) == Qt::Popup) {
if (!windowIsPopupType(type) && !(flags & Qt::FramelessWindowHint))
styleMask = (NSUtilityWindowMask | NSResizableWindowMask | NSClosableWindowMask |
@@ -458,14 +457,21 @@ NSUInteger QCocoaWindow::windowStyleMask(Qt::WindowFlags flags)
} else {
// Filter flags for supported properties
flags &= Qt::WindowType_Mask | Qt::FramelessWindowHint | Qt::WindowTitleHint |
- Qt::WindowMinMaxButtonsHint | Qt::WindowCloseButtonHint;
+ Qt::WindowMinMaxButtonsHint | Qt::WindowCloseButtonHint | Qt::CustomizeWindowHint;
if (flags == Qt::Window) {
styleMask = (NSResizableWindowMask | NSClosableWindowMask | NSMiniaturizableWindowMask | NSTitledWindowMask);
} else if ((flags & Qt::Dialog) == Qt::Dialog) {
- if (window()->modality() == Qt::NonModal)
+ if (flags & Qt::CustomizeWindowHint) {
+ styleMask = NSResizableWindowMask;
+ if (flags & Qt::WindowTitleHint)
+ styleMask |= NSTitledWindowMask;
+ if (flags & Qt::WindowCloseButtonHint)
+ styleMask |= NSClosableWindowMask;
+ if (flags & Qt::WindowMinimizeButtonHint)
+ styleMask |= NSMiniaturizableWindowMask;
+ } else {
styleMask = NSResizableWindowMask | NSClosableWindowMask | NSTitledWindowMask;
- else
- styleMask = NSResizableWindowMask | NSTitledWindowMask;
+ }
} else if (!(flags & Qt::FramelessWindowHint)) {
if ((flags & Qt::Dialog) || (flags & Qt::WindowMaximizeButtonHint))
styleMask |= NSResizableWindowMask;