| Index: chrome/browser/cocoa/browser_window_controller.mm
|
| diff --git a/chrome/browser/cocoa/browser_window_controller.mm b/chrome/browser/cocoa/browser_window_controller.mm
|
| index b6cc9150f3b7a2c982ce99719ca87339f2f925a3..7edf5b412f1946e26a1e8343430aa2b8af23c52e 100644
|
| --- a/chrome/browser/cocoa/browser_window_controller.mm
|
| +++ b/chrome/browser/cocoa/browser_window_controller.mm
|
| @@ -549,11 +549,11 @@ willPositionSheet:(NSWindow*)sheet
|
| }
|
|
|
| // Called to validate menu and toolbar items when this window is key. All the
|
| -// items we care about have been set with the |commandDispatch:| action and
|
| -// a target of FirstResponder in IB. If it's not one of those, let it
|
| -// continue up the responder chain to be handled elsewhere. We pull out the
|
| -// tag as the cross-platform constant to differentiate and dispatch the
|
| -// various commands.
|
| +// items we care about have been set with the |-commandDispatch:| or
|
| +// |-commandDispatchUsingKeyModifiers:| actions and a target of FirstResponder
|
| +// in IB. If it's not one of those, let it continue up the responder chain to be
|
| +// handled elsewhere. We pull out the tag as the cross-platform constant to
|
| +// differentiate and dispatch the various commands.
|
| // NOTE: we might have to handle state for app-wide menu items,
|
| // although we could cheat and directly ask the app controller if our
|
| // command_updater doesn't support the command. This may or may not be an issue,
|
| @@ -561,7 +561,8 @@ willPositionSheet:(NSWindow*)sheet
|
| - (BOOL)validateUserInterfaceItem:(id<NSValidatedUserInterfaceItem>)item {
|
| SEL action = [item action];
|
| BOOL enable = NO;
|
| - if (action == @selector(commandDispatch:)) {
|
| + if (action == @selector(commandDispatch:) ||
|
| + action == @selector(commandDispatchUsingKeyModifiers:)) {
|
| NSInteger tag = [item tag];
|
| if (browser_->command_updater()->SupportsCommand(tag)) {
|
| // Generate return value (enabled state)
|
| @@ -598,14 +599,6 @@ willPositionSheet:(NSWindow*)sheet
|
| - (void)commandDispatch:(id)sender {
|
| NSInteger tag = [sender tag];
|
| switch (tag) {
|
| - case IDC_FORWARD:
|
| - case IDC_BACK:
|
| - // For this, we need to check the key flags to figure out where to open
|
| - // the history item. Note that |Revert()| isn't needed, since any
|
| - // navigation in the current tab will reset the location bar's contents.
|
| - browser_->ExecuteCommandWithDisposition(tag,
|
| - event_utils::WindowOpenDispositionFromNSEvent([NSApp currentEvent]));
|
| - return;
|
| case IDC_RELOAD:
|
| if ([sender isKindOfClass:[NSButton class]]) {
|
| // We revert the bar when the reload button is pressed, but don't when
|
| @@ -620,6 +613,14 @@ willPositionSheet:(NSWindow*)sheet
|
| browser_->ExecuteCommand(tag);
|
| }
|
|
|
| +// Same as |-commandDispatch:|, but executes commands using a disposition
|
| +// determined by the key flags.
|
| +- (void)commandDispatchUsingKeyModifiers:(id)sender {
|
| + NSInteger tag = [sender tag];
|
| + browser_->ExecuteCommandWithDisposition(tag,
|
| + event_utils::WindowOpenDispositionFromNSEvent([NSApp currentEvent]));
|
| +}
|
| +
|
| // Called when another part of the internal codebase needs to execute a
|
| // command.
|
| - (void)executeCommand:(int)command {
|
|
|