Chromium Code Reviews| 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 1c6b46af73aa14cc9f57f8c992814b6d89d6e700..ee2b890960833a12e91e148c2d2368df751e8639 100644 |
| --- a/ui/views/widget/native_widget_mac.mm |
| +++ b/ui/views/widget/native_widget_mac.mm |
| @@ -24,6 +24,7 @@ |
| #import "ui/views/cocoa/bridged_native_widget.h" |
| #include "ui/views/cocoa/cocoa_mouse_capture.h" |
| #import "ui/views/cocoa/drag_drop_client_mac.h" |
| +#import "ui/views/cocoa/native_widget_mac_accelerator_handler.h" |
| #import "ui/views/cocoa/native_widget_mac_nswindow.h" |
| #import "ui/views/cocoa/views_nswindow_delegate.h" |
| #include "ui/views/widget/drop_helper.h" |
| @@ -121,8 +122,20 @@ int NativeWidgetMac::SheetPositionY() { |
| void NativeWidgetMac::InitNativeWidget(const Widget::InitParams& params) { |
| ownership_ = params.ownership; |
| name_ = params.name; |
| - base::scoped_nsobject<NSWindow> window([CreateNSWindow(params) retain]); |
| + NativeWidgetMacNSWindow* ns_window = CreateNSWindow(params); |
| + base::scoped_nsobject<NSWindow> window([ns_window retain]); |
|
tapted
2017/01/02 23:11:49
if you are just after the concrete type, you can m
|
| [window setReleasedWhenClosed:NO]; // Owned by scoped_nsobject. |
| + |
| + if (params.parent && params.pass_accelerator_to_parent) { |
|
tapted
2017/01/02 23:11:49
I don't think we need params.pass_accelerator_to_p
|
| + if (auto* bridge = |
| + NativeWidgetMac::GetBridgeForNativeWindow([params.parent window])) { |
| + DCHECK(bridge->ns_window()); |
| + [ns_window setCommandHandler:[[[NativeWidgetMacAcceleratorHandler alloc] |
| + initWithParentWindow:bridge->ns_window()] |
| + autorelease]]; |
| + } |
| + } |
| + |
| bridge_->Init(window, params); |
| // Only set always-on-top here if it is true since setting it may affect how |