Index: chrome/browser/ui/cocoa/browser_window_controller.mm |
diff --git a/chrome/browser/ui/cocoa/browser_window_controller.mm b/chrome/browser/ui/cocoa/browser_window_controller.mm |
index 873b1f5967a0a807b7656818e0c007c137a7b779..72ff66738d397ff091bcbccc4a9a93d669fb33dd 100644 |
--- a/chrome/browser/ui/cocoa/browser_window_controller.mm |
+++ b/chrome/browser/ui/cocoa/browser_window_controller.mm |
@@ -274,13 +274,9 @@ enum { |
// Note that this may leave a significant portion of the window |
// offscreen, but there will always be enough window onscreen to |
// drag the whole window back into view. |
- NSSize minSize = [[self window] minSize]; |
gfx::Rect desiredContentRect = browser_->GetSavedWindowBounds(); |
gfx::Rect windowRect = desiredContentRect; |
- if (windowRect.width() < minSize.width) |
- windowRect.set_width(minSize.width); |
- if (windowRect.height() < minSize.height) |
- windowRect.set_height(minSize.height); |
+ windowRect = [self enforceMinWindowSize:windowRect]; |
// When we are given x/y coordinates of 0 on a created popup window, assume |
// none were given by the window.open() command. |
@@ -438,6 +434,13 @@ enum { |
return self; |
} |
+- (void)awakeFromNib { |
+ // Set different minimum sizes on tabbed windows vs non-tabbed, e.g. popups. |
+ NSSize minSize = [self isTabbedWindow] ? |
+ NSMakeSize(400, 272) : NSMakeSize(100, 122); |
+ [[self window] setMinSize:minSize]; |
+} |
+ |
- (void)dealloc { |
browser_->CloseAllTabs(); |
[downloadShelfController_ exiting]; |
@@ -457,6 +460,18 @@ enum { |
[super dealloc]; |
} |
+- (gfx::Rect)enforceMinWindowSize:(gfx::Rect)bounds { |
+ gfx::Rect checkedBounds = bounds; |
+ |
+ NSSize minSize = [[self window] minSize]; |
+ if (bounds.width() < minSize.width) |
+ checkedBounds.set_width(minSize.width); |
+ if (bounds.height() < minSize.height) |
+ checkedBounds.set_height(minSize.height); |
+ |
+ return checkedBounds; |
+} |
+ |
- (BrowserWindow*)browserWindow { |
return windowShim_.get(); |
} |