diff options
author | Timur Pocheptsov <Timur.Pocheptsov@digia.com> | 2015-01-30 12:37:37 +0100 |
---|---|---|
committer | Timur Pocheptsov <Timur.Pocheptsov@digia.com> | 2015-02-04 05:52:34 +0000 |
commit | d024f0a9228a33787f2e9b0ecb2573041fa048df (patch) | |
tree | 80a1b8dd126512c23cb290b2364abec33885b4ae /src/plugins | |
parent | ad2ea165501c23cbd85c4ddb155f2d7ea8fc85b8 (diff) |
Cocoa plugin - showMaximized/showMinimized and Qt::FramelessWindowHint
1. Qt::FramelessWindowHint imlplies NSBorderlessWindowMask, but should
_not_ exclude NSResizableWindowMask - we still have API (showMaximized)
to resize this window. Without NSResizableWindowMask showMaximized
(calling NSWindow's '-zoom' under the hood) has no effect.
2. -performMiniaturize does not work with a borderless window, since such
a window does not have a minimize button - use miniaturize for such
window instead.
Change-Id: I691182ad7c1d230e670bfb70ef758483acbf0792
Task-number: QTBUG-44195
Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
Diffstat (limited to 'src/plugins')
-rw-r--r-- | src/plugins/platforms/cocoa/qcocoawindow.mm | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/plugins/platforms/cocoa/qcocoawindow.mm b/src/plugins/platforms/cocoa/qcocoawindow.mm index 6656212457..aa07c5a55b 100644 --- a/src/plugins/platforms/cocoa/qcocoawindow.mm +++ b/src/plugins/platforms/cocoa/qcocoawindow.mm @@ -804,7 +804,7 @@ NSUInteger QCocoaWindow::windowStyleMask(Qt::WindowFlags flags) Qt::WindowType type = static_cast<Qt::WindowType>(int(flags & Qt::WindowType_Mask)); NSInteger styleMask = NSBorderlessWindowMask; if (flags & Qt::FramelessWindowHint) - return styleMask; + return styleMask | NSResizableWindowMask; if ((type & Qt::Popup) == Qt::Popup) { if (!windowIsPopupType(type)) styleMask = (NSUtilityWindowMask | NSResizableWindowMask | NSClosableWindowMask | @@ -1506,7 +1506,10 @@ void QCocoaWindow::syncWindowState(Qt::WindowState newState) if ((m_synchedWindowState & Qt::WindowMinimized) != (newState & Qt::WindowMinimized)) { if (newState & Qt::WindowMinimized) { - [m_nsWindow performMiniaturize : m_nsWindow]; + if (m_nsWindow.styleMask & NSMiniaturizableWindowMask) + [m_nsWindow performMiniaturize : m_nsWindow]; + else + [m_nsWindow miniaturize : m_nsWindow]; } else { [m_nsWindow deminiaturize : m_nsWindow]; } |