Chromium Code Reviews| 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 |