diff --git a/atom/browser/native_window_mac.h b/atom/browser/native_window_mac.h index faff517a88143..ccd5db6eaf8b6 100644 --- a/atom/browser/native_window_mac.h +++ b/atom/browser/native_window_mac.h @@ -165,7 +165,7 @@ class NativeWindowMac : public NativeWindow { private: // Add custom layers to the content view. - void AddContentViewLayers(); + void AddContentViewLayers(bool minimizable, bool closable); void InternalSetParentWindow(NativeWindow* parent, bool attach); void SetForwardMouseMessages(bool forward); diff --git a/atom/browser/native_window_mac.mm b/atom/browser/native_window_mac.mm index 1f95c81d96d56..1bd932f25f6ce 100644 --- a/atom/browser/native_window_mac.mm +++ b/atom/browser/native_window_mac.mm @@ -73,9 +73,11 @@ - (id)initWithFrame:(NSRect)frame { NSButton* close_button = [NSWindow standardWindowButton:NSWindowCloseButton forStyleMask:NSWindowStyleMaskTitled]; + [close_button setTag:1]; NSButton* miniaturize_button = [NSWindow standardWindowButton:NSWindowMiniaturizeButton forStyleMask:NSWindowStyleMaskTitled]; + [miniaturize_button setTag:2]; CGFloat x = 0; const CGFloat space_between = 20; @@ -459,7 +461,7 @@ void ViewDidMoveToSuperview(NSView* self, SEL _cmd) { // Default content view. SetContentView(new views::View()); - AddContentViewLayers(); + AddContentViewLayers(minimizable, closable); original_frame_ = [window_ frame]; original_level_ = [window_ level]; @@ -851,9 +853,9 @@ void ViewDidMoveToSuperview(NSView* self, SEL _cmd) { if (newLevel >= minWindowLevel && newLevel <= maxWindowLevel) { [window_ setLevel:newLevel]; } else { - *error = std::string([ - [NSString stringWithFormat:@"relativeLevel must be between %d and %d", - minWindowLevel, maxWindowLevel] UTF8String]); + *error = std::string([[NSString + stringWithFormat:@"relativeLevel must be between %d and %d", + minWindowLevel, maxWindowLevel] UTF8String]); } } @@ -1092,7 +1094,7 @@ void ViewDidMoveToSuperview(NSView* self, SEL _cmd) { } [view->GetInspectableWebContentsView()->GetNativeView().GetNativeNSView() - removeFromSuperview]; + removeFromSuperview]; remove_browser_view(view); [CATransaction commit]; @@ -1374,7 +1376,7 @@ void ViewDidMoveToSuperview(NSView* self, SEL _cmd) { return root_view_.get(); } -void NativeWindowMac::AddContentViewLayers() { +void NativeWindowMac::AddContentViewLayers(bool minimizable, bool closable) { // Make sure the bottom corner is rounded for non-modal windows: // http://crbug.com/396264. if (!is_modal()) { @@ -1414,6 +1416,12 @@ void ViewDidMoveToSuperview(NSView* self, SEL _cmd) { [[CustomWindowButtonView alloc] initWithFrame:NSZeroRect]); // NSWindowStyleMaskFullSizeContentView does not work with zoom button SetFullScreenable(false); + + if (!minimizable) + [[buttons_view_ viewWithTag:2] removeFromSuperview]; + if (!closable) + [[buttons_view_ viewWithTag:1] removeFromSuperview]; + [[window_ contentView] addSubview:buttons_view_]; } else { if (title_bar_style_ != NORMAL) @@ -1470,7 +1478,7 @@ void ViewDidMoveToSuperview(NSView* self, SEL _cmd) { setAutoresizingMask:NSViewWidthSizable | NSViewHeightSizable]; [container_view_ setFrame:[[[window_ contentView] superview] bounds]]; [window_ setContentView:container_view_]; - AddContentViewLayers(); + AddContentViewLayers(IsMinimizable(), IsClosable()); } void NativeWindowMac::SetStyleMask(bool on, NSUInteger flag) {