| Index: ui/views/widget/native_widget_mac.mm
|
| diff --git a/ui/views/widget/native_widget_mac.mm b/ui/views/widget/native_widget_mac.mm
|
| index c6d851d02cabb275ae8ab30dd02579715af5ce63..b6aa7176a1163772804329ac8577fa0cf8146f31 100644
|
| --- a/ui/views/widget/native_widget_mac.mm
|
| +++ b/ui/views/widget/native_widget_mac.mm
|
| @@ -18,10 +18,15 @@
|
| #include "ui/views/window/native_frame_view.h"
|
|
|
| @interface NativeWidgetMacNSWindow : NSWindow
|
| +- (ViewsNSWindowDelegate*)viewsNSWindowDelegate;
|
| @end
|
|
|
| @implementation NativeWidgetMacNSWindow
|
|
|
| +- (ViewsNSWindowDelegate*)viewsNSWindowDelegate {
|
| + return base::mac::ObjCCastStrict<ViewsNSWindowDelegate>([self delegate]);
|
| +}
|
| +
|
| // Override canBecome{Key,Main}Window to always return YES, otherwise Windows
|
| // with a styleMask of NSBorderlessWindowMask default to NO.
|
| - (BOOL)canBecomeKeyWindow {
|
| @@ -32,6 +37,15 @@
|
| return YES;
|
| }
|
|
|
| +// Override orderWindow to intercept visibility changes, since there is no way
|
| +// to observe these changes via NSWindowDelegate.
|
| +- (void)orderWindow:(NSWindowOrderingMode)orderingMode
|
| + relativeTo:(NSInteger)otherWindowNumber {
|
| + [[self viewsNSWindowDelegate] onWindowOrderWillChange:orderingMode];
|
| + [super orderWindow:orderingMode relativeTo:otherWindowNumber];
|
| + [[self viewsNSWindowDelegate] onWindowOrderChanged];
|
| +}
|
| +
|
| @end
|
|
|
| namespace views {
|
| @@ -301,6 +315,12 @@ void NativeWidgetMac::SetShape(gfx::NativeRegion shape) {
|
| }
|
|
|
| void NativeWidgetMac::Close() {
|
| + if (!bridge_)
|
| + return;
|
| +
|
| + // Clear the view early to suppress repaints.
|
| + bridge_->SetRootView(NULL);
|
| +
|
| NSWindow* window = GetNativeWindow();
|
| // Calling performClose: will momentarily highlight the close button, but
|
| // AppKit will reject it if there is no close button.
|
|
|