summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndy Shaw <andy.shaw@digia.com>2013-11-12 09:41:42 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-11-16 16:39:23 +0100
commitbe405c86f8efac7c6bc8b749725d6d0e0499314d (patch)
tree8e8ef59244a5768f2ea95d4fe424f05b99f6eda9
parente9af987f2821112ec6b03af5e2527c37c5580c68 (diff)
Fix the window flags for Cocoa windows
This ensures that the possible window flag combinations are respected where possible in Cocoa. Task-number: QTBUG-34645 Task-number: QTBUG-31616 Change-Id: I6be8ca666b7cbc397575e97cd95ea298f52a7113 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
-rw-r--r--src/plugins/platforms/cocoa/qcocoawindow.mm12
1 files changed, 5 insertions, 7 deletions
diff --git a/src/plugins/platforms/cocoa/qcocoawindow.mm b/src/plugins/platforms/cocoa/qcocoawindow.mm
index 228ef9d484..c22f254aef 100644
--- a/src/plugins/platforms/cocoa/qcocoawindow.mm
+++ b/src/plugins/platforms/cocoa/qcocoawindow.mm
@@ -470,14 +470,12 @@ NSUInteger QCocoaWindow::windowStyleMask(Qt::WindowFlags flags)
styleMask = (NSUtilityWindowMask | NSResizableWindowMask | NSClosableWindowMask |
NSMiniaturizableWindowMask | NSTitledWindowMask);
} else {
- // Filter flags for supported properties
- flags &= Qt::WindowType_Mask | Qt::FramelessWindowHint | Qt::WindowTitleHint |
- Qt::WindowMinMaxButtonsHint | Qt::WindowCloseButtonHint | Qt::CustomizeWindowHint;
- if (flags == Qt::Window) {
+ if (type == Qt::Window && !(flags & Qt::CustomizeWindowHint)) {
styleMask = (NSResizableWindowMask | NSClosableWindowMask | NSMiniaturizableWindowMask | NSTitledWindowMask);
- } else if ((flags & Qt::Dialog) == Qt::Dialog) {
+ } else if (type == Qt::Dialog) {
if (flags & Qt::CustomizeWindowHint) {
- styleMask = NSResizableWindowMask;
+ if (flags & Qt::WindowMaximizeButtonHint)
+ styleMask = NSResizableWindowMask;
if (flags & Qt::WindowTitleHint)
styleMask |= NSTitledWindowMask;
if (flags & Qt::WindowCloseButtonHint)
@@ -488,7 +486,7 @@ NSUInteger QCocoaWindow::windowStyleMask(Qt::WindowFlags flags)
styleMask = NSResizableWindowMask | NSClosableWindowMask | NSTitledWindowMask;
}
} else if (!(flags & Qt::FramelessWindowHint)) {
- if ((flags & Qt::Dialog) || (flags & Qt::WindowMaximizeButtonHint))
+ if (flags & Qt::WindowMaximizeButtonHint)
styleMask |= NSResizableWindowMask;
if (flags & Qt::WindowTitleHint)
styleMask |= NSTitledWindowMask;