diff options
author | Morten Sorvig <morten.sorvig@nokia.com> | 2011-10-26 10:00:26 +0200 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2011-10-27 09:37:29 +0200 |
commit | db44fdf4d65493706dc9a0aaf5e58729dc7867f9 (patch) | |
tree | 430231ce03f1ccc9720836714db2dda8a572a5b8 /src/plugins/platforms/cocoa/qcocoawindow.mm | |
parent | af8795c2b5305cf92df3249c6bd3cc6292415d8f (diff) |
Cocoa: Implement propagateSizeHints.
Change-Id: Idc1244ffbf975972f01d9ee48092500a72739d37
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
Diffstat (limited to 'src/plugins/platforms/cocoa/qcocoawindow.mm')
-rw-r--r-- | src/plugins/platforms/cocoa/qcocoawindow.mm | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/plugins/platforms/cocoa/qcocoawindow.mm b/src/plugins/platforms/cocoa/qcocoawindow.mm index 840d4d96da..e587b05dec 100644 --- a/src/plugins/platforms/cocoa/qcocoawindow.mm +++ b/src/plugins/platforms/cocoa/qcocoawindow.mm @@ -140,6 +140,26 @@ void QCocoaWindow::lower() [m_nsWindow orderFront: m_nsWindow]; } +void QCocoaWindow::propagateSizeHints() +{ + [m_nsWindow setMinSize : qt_mac_toNSSize(window()->minimumSize())]; + [m_nsWindow setMaxSize : qt_mac_toNSSize(window()->maximumSize())]; + + if (!window()->sizeIncrement().isNull()) + [m_nsWindow setResizeIncrements : qt_mac_toNSSize(window()->sizeIncrement())]; + + // We must set the window frame after setting the minimum size to prevent the window + // from being resized to the minimum size. Use QWindow::baseSize if set, otherwise + // use the current size. + QSize baseSize = window()->baseSize(); + QRect rect = geometry(); + if (!baseSize.isNull()) { + [m_nsWindow setFrame : NSMakeRect(rect.x(), rect.y(), baseSize.width(), baseSize.height()) display : YES]; + } else { + [m_nsWindow setFrame : NSMakeRect(rect.x(), rect.y(), rect.width(), rect.height()) display : YES]; + } +} + WId QCocoaWindow::winId() const { return WId(m_nsWindow); |