Bug 1306332 - Don't set a maximum size on the native window if SetSizeConstraints is called with magical "unconstrained" values. r?karlt draft
authorMarkus Stange <mstange@themasta.com>
Thu, 29 Sep 2016 14:21:14 -0400
changeset 419136 eab74f414014c482cc400ba6510bf4b9ec6b1566
parent 419135 be16cff85250551e0538f07f8e9a0c06a8989611
child 532499 1260a4332187c4fbe0fe17c9565dee51fe9b062a
push id30851
push userbmo:mstange@themasta.com
push dateThu, 29 Sep 2016 18:23:13 +0000
reviewerskarlt
bugs1306332
milestone52.0a1
Bug 1306332 - Don't set a maximum size on the native window if SetSizeConstraints is called with magical "unconstrained" values. r?karlt MozReview-Commit-ID: DdHrNjmxHQJ
widget/gtk/nsWindow.cpp
--- a/widget/gtk/nsWindow.cpp
+++ b/widget/gtk/nsWindow.cpp
@@ -1039,17 +1039,23 @@ void nsWindow::SetSizeConstraints(const 
                              mSizeConstraints.mMinSize.width);
         geometry.min_height = DevicePixelsToGdkCoordRoundUp(
                               mSizeConstraints.mMinSize.height);
         geometry.max_width = DevicePixelsToGdkCoordRoundDown(
                              mSizeConstraints.mMaxSize.width);
         geometry.max_height = DevicePixelsToGdkCoordRoundDown(
                               mSizeConstraints.mMaxSize.height);
 
-        uint32_t hints = GDK_HINT_MIN_SIZE | GDK_HINT_MAX_SIZE;
+        uint32_t hints = 0;
+        if (aConstraints.mMinSize != LayoutDeviceIntSize(0, 0)) {
+          hints |= GDK_HINT_MIN_SIZE;
+        }
+        if (aConstraints.mMaxSize != LayoutDeviceIntSize(NS_MAXSIZE, NS_MAXSIZE)) {
+          hints |= GDK_HINT_MAX_SIZE;
+        }
         gtk_window_set_geometry_hints(GTK_WINDOW(mShell), nullptr,
                                       &geometry, GdkWindowHints(hints));
     }
 }
 
 NS_IMETHODIMP
 nsWindow::Show(bool aState)
 {