Index: ui/views/cocoa/native_widget_mac_nswindow.mm |
diff --git a/ui/views/cocoa/native_widget_mac_nswindow.mm b/ui/views/cocoa/native_widget_mac_nswindow.mm |
index 1de283fb956b7dc53d180ed36ec06e1e07d4ae91..c3c30801410f16c9c276dd78edc5f727cb4c5c8e 100644 |
--- a/ui/views/cocoa/native_widget_mac_nswindow.mm |
+++ b/ui/views/cocoa/native_widget_mac_nswindow.mm |
@@ -23,6 +23,7 @@ |
@implementation NativeWidgetMacNSWindow { |
@private |
base::scoped_nsobject<CommandDispatcher> commandDispatcher_; |
+ id<UserInterfaceItemCommandHandler> commandHandler_; |
} |
- (instancetype)initWithContentRect:(NSRect)contentRect |
@@ -40,8 +41,10 @@ |
// Public methods. |
-- (void)setCommandDispatcherDelegate:(id<CommandDispatcherDelegate>)delegate { |
+- (void)setCommandDispatcherDelegate: |
+ (id<CommandDispatcherDelegate, UserInterfaceItemCommandHandler>)delegate { |
[commandDispatcher_ setDelegate:delegate]; |
+ commandHandler_ = delegate; |
} |
// Private methods. |
@@ -168,4 +171,19 @@ |
return [super performKeyEquivalent:event]; |
} |
+- (void)commandDispatch:(id)sender { |
+ [commandHandler_ commandDispatch:sender window:self]; |
+} |
+ |
+- (void)commandDispatchUsingKeyModifiers:(id)sender { |
+ [commandHandler_ commandDispatchUsingKeyModifiers:sender window:self]; |
+} |
+ |
+// NSWindow overrides (NSUserInterfaceItemValidations implementation) |
+ |
+- (BOOL)validateUserInterfaceItem:(id<NSValidatedUserInterfaceItem>)item { |
+ return [commandHandler_ validateUserInterfaceItem:item window:self] && |
+ [super validateUserInterfaceItem:item]; |
+} |
+ |
@end |