Browse Source

fix: max window size defaults to 0 (#33119)

* fix: max window size defaults to 0

* fix: also check max_size empty

Co-authored-by: Shelley Vohr <[email protected]>
trop[bot] 3 years ago
parent
commit
262cc48ad0
1 changed files with 14 additions and 5 deletions
  1. 14 5
      shell/browser/native_window.cc

+ 14 - 5
shell/browser/native_window.cc

@@ -161,16 +161,25 @@ void NativeWindow::InitFromOptions(const gin_helper::Dictionary& options) {
   // On Linux and Window we may already have maximum size defined.
   extensions::SizeConstraints size_constraints(
       use_content_size ? GetContentSizeConstraints() : GetSizeConstraints());
+
   int min_width = size_constraints.GetMinimumSize().width();
   int min_height = size_constraints.GetMinimumSize().height();
   options.Get(options::kMinWidth, &min_width);
   options.Get(options::kMinHeight, &min_height);
   size_constraints.set_minimum_size(gfx::Size(min_width, min_height));
-  int max_width = size_constraints.GetMaximumSize().width();
-  int max_height = size_constraints.GetMaximumSize().height();
-  options.Get(options::kMaxWidth, &max_width);
-  options.Get(options::kMaxHeight, &max_height);
-  size_constraints.set_maximum_size(gfx::Size(max_width, max_height));
+
+  gfx::Size max_size = size_constraints.GetMaximumSize();
+  int max_width = max_size.width() > 0 ? max_size.width() : INT_MAX;
+  int max_height = max_size.height() > 0 ? max_size.height() : INT_MAX;
+  bool have_max_width = options.Get(options::kMaxWidth, &max_width);
+  bool have_max_height = options.Get(options::kMaxHeight, &max_height);
+
+  // By default the window has a default maximum size that prevents it
+  // from being resized larger than the screen, so we should only set this
+  // if th user has passed in values.
+  if (have_max_height || have_max_width || !max_size.IsEmpty())
+    size_constraints.set_maximum_size(gfx::Size(max_width, max_height));
+
   if (use_content_size) {
     SetContentSizeConstraints(size_constraints);
   } else {