Cocoa: Implement propagateSizeHints.
[profile/ivi/qtbase.git] / src / plugins / platforms / cocoa / qcocoawindow.mm
index 840d4d9..e587b05 100644 (file)
@@ -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);