Index: chrome/browser/ui/views/apps/app_window_native_widget_mac.mm |
diff --git a/chrome/browser/ui/views/apps/app_window_native_widget_mac.mm b/chrome/browser/ui/views/apps/app_window_native_widget_mac.mm |
index 4cde263d0542b8c8ee8db827b631e66ac27eff4e..78c1523d4bbbf3822de4c9eeeb8ef2ef1a86a397 100644 |
--- a/chrome/browser/ui/views/apps/app_window_native_widget_mac.mm |
+++ b/chrome/browser/ui/views/apps/app_window_native_widget_mac.mm |
@@ -6,8 +6,12 @@ |
#import <Cocoa/Cocoa.h> |
+#include "base/mac/mac_util.h" |
+#include "base/mac/sdk_forward_declarations.h" |
+#import "chrome/browser/ui/cocoa/apps/nswindow_util.h" |
#import "chrome/browser/ui/views/apps/native_widget_mac_frameless_nswindow.h" |
#import "ui/base/cocoa/window_size_constants.h" |
+#include "ui/views/widget/widget_delegate.h" |
AppWindowNativeWidgetMac::AppWindowNativeWidgetMac(views::Widget* widget) |
: NativeWidgetMac(widget) { |
@@ -16,6 +20,32 @@ AppWindowNativeWidgetMac::AppWindowNativeWidgetMac(views::Widget* widget) |
AppWindowNativeWidgetMac::~AppWindowNativeWidgetMac() { |
} |
+void AppWindowNativeWidgetMac::OnSizeConstraintsChanged() { |
+ NativeWidgetMac::OnSizeConstraintsChanged(); |
+ |
+ gfx::Size minimum_size = delegate()->GetMinimumSize(); |
tapted
2015/03/20 12:12:53
I think to be consistent with aura widgets, this c
jackhou1
2015/03/25 23:32:23
Done.
|
+ gfx::Size maximum_size = delegate()->GetMaximumSize(); |
+ bool is_resizable = delegate()->AsWidget()->widget_delegate()->CanResize(); |
+ bool shows_resize_controls = |
+ is_resizable && (minimum_size.IsEmpty() || minimum_size != maximum_size); |
+ bool shows_fullscreen_controls = |
+ is_resizable && delegate()->AsWidget()->widget_delegate()->CanMaximize(); |
+ |
+ NSWindow* window = GetNativeWindow(); |
+ SetResizableStyleMask(window, shows_resize_controls); |
+ if (base::mac::IsOSSnowLeopard()) |
+ [window setShowsResizeIndicator:shows_resize_controls]; |
+ |
+ // Set the window to participate in Lion Fullscreen mode. Setting this flag |
+ // has no effect on Snow Leopard or earlier. UI controls for fullscreen are |
+ // only shown for apps that have unbounded size. |
+ if (base::mac::IsOSLionOrLater()) |
+ SetFullScreenCollectionBehavior(window, shows_fullscreen_controls); |
+ |
+ [[window standardWindowButton:NSWindowZoomButton] |
+ setEnabled:shows_fullscreen_controls]; |
tapted
2015/03/20 12:12:53
I wonder if this is all complicated enough to try
jackhou1
2015/03/25 23:32:23
Done.
|
+} |
+ |
NSWindow* AppWindowNativeWidgetMac::CreateNSWindow( |
const views::Widget::InitParams& params) { |
// If the window has a standard frame, use the same NSWindow as |