diff options
author | Marko Kangas <marko.kangas@theqtcompany.com> | 2015-05-06 13:51:04 +0300 |
---|---|---|
committer | Marko Kangas <marko.kangas@theqtcompany.com> | 2015-05-27 11:34:10 +0000 |
commit | dd02c1eb38c6dfc8367f2c692e11897b6c00b097 (patch) | |
tree | 3e775b40278500154c0fb562d0906e487d1a38c7 /src/plugins/platforms/cocoa/qcocoawindow.mm | |
parent | 43e82a3b094b8894b1cade6a6b871dd57aaa6c83 (diff) |
Add support to disable close button from the tool window in Cocoa.
Fixed regression from Qt4 that close button could't be disabled
from the tool window. With this patch buttons are hidden before
using button hints like it's on Windows.
Change-Id: I00f03ff9528ccae3b1136312404452b9415953b4
Task-number: QTBUG-45971
Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
Diffstat (limited to 'src/plugins/platforms/cocoa/qcocoawindow.mm')
-rw-r--r-- | src/plugins/platforms/cocoa/qcocoawindow.mm | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/src/plugins/platforms/cocoa/qcocoawindow.mm b/src/plugins/platforms/cocoa/qcocoawindow.mm index cbe4227b63..86959869cc 100644 --- a/src/plugins/platforms/cocoa/qcocoawindow.mm +++ b/src/plugins/platforms/cocoa/qcocoawindow.mm @@ -799,9 +799,22 @@ NSUInteger QCocoaWindow::windowStyleMask(Qt::WindowFlags flags) if (flags & Qt::FramelessWindowHint) return styleMask; if ((type & Qt::Popup) == Qt::Popup) { - if (!windowIsPopupType(type)) - styleMask = (NSUtilityWindowMask | NSResizableWindowMask | NSClosableWindowMask | - NSMiniaturizableWindowMask | NSTitledWindowMask); + if (!windowIsPopupType(type)) { + styleMask = NSUtilityWindowMask; + if (!(flags & Qt::CustomizeWindowHint)) { + styleMask |= NSResizableWindowMask | NSClosableWindowMask | + NSMiniaturizableWindowMask | NSTitledWindowMask; + } else { + if (flags & Qt::WindowMaximizeButtonHint) + styleMask |= NSResizableWindowMask; + if (flags & Qt::WindowTitleHint) + styleMask |= NSTitledWindowMask; + if (flags & Qt::WindowCloseButtonHint) + styleMask |= NSClosableWindowMask; + if (flags & Qt::WindowMinimizeButtonHint) + styleMask |= NSMiniaturizableWindowMask; + } + } } else { if (type == Qt::Window && !(flags & Qt::CustomizeWindowHint)) { styleMask = (NSResizableWindowMask | NSClosableWindowMask | NSMiniaturizableWindowMask | NSTitledWindowMask); |