| Index: chrome/browser/ui/views/extensions/extension_keybinding_registry_views.cc
|
| diff --git a/chrome/browser/ui/views/extensions/extension_keybinding_registry_views.cc b/chrome/browser/ui/views/extensions/extension_keybinding_registry_views.cc
|
| index 61f49150a6a8c2eb98b361d113bac9fc83d68e27..422dd1bc66bae19cbe486ab29be17863b0abfd1e 100644
|
| --- a/chrome/browser/ui/views/extensions/extension_keybinding_registry_views.cc
|
| +++ b/chrome/browser/ui/views/extensions/extension_keybinding_registry_views.cc
|
| @@ -29,8 +29,13 @@ ExtensionKeybindingRegistryViews::ExtensionKeybindingRegistryViews(
|
| }
|
|
|
| ExtensionKeybindingRegistryViews::~ExtensionKeybindingRegistryViews() {
|
| - EventTargets::const_iterator iter;
|
| - for (iter = event_targets_.begin(); iter != event_targets_.end(); ++iter)
|
| + for (EventTargets::const_iterator iter = event_targets_.begin();
|
| + iter != event_targets_.end(); ++iter)
|
| + focus_manager_->UnregisterAccelerator(iter->first, this);
|
| +
|
| + for (MediaKeysEventTargets::const_iterator iter =
|
| + media_keys_event_targets_.begin();
|
| + iter != media_keys_event_targets_.end(); ++iter)
|
| focus_manager_->UnregisterAccelerator(iter->first, this);
|
| }
|
|
|
| @@ -57,8 +62,14 @@ void ExtensionKeybindingRegistryViews::AddExtensionKeybinding(
|
| if (!command_name.empty() && (iter->second.command_name() != command_name))
|
| continue;
|
|
|
| - event_targets_[iter->second.accelerator()] =
|
| - std::make_pair(extension->id(), iter->second.command_name());
|
| + if (extensions::CommandService::IsMediaKey(iter->second.accelerator())) {
|
| + std::pair<std::string, std::string> target =
|
| + std::make_pair(extension->id(), iter->second.command_name());
|
| + media_keys_event_targets_[iter->second.accelerator()].push_back(target);
|
| + } else {
|
| + event_targets_[iter->second.accelerator()] =
|
| + std::make_pair(extension->id(), iter->second.command_name());
|
| + }
|
| focus_manager_->RegisterAccelerator(
|
| iter->second.accelerator(),
|
| ui::AcceleratorManager::kHighPriority, this);
|
| @@ -73,15 +84,8 @@ void ExtensionKeybindingRegistryViews::RemoveExtensionKeybindingImpl(
|
|
|
| bool ExtensionKeybindingRegistryViews::AcceleratorPressed(
|
| const ui::Accelerator& accelerator) {
|
| - EventTargets::iterator it = event_targets_.find(accelerator);
|
| - if (it == event_targets_.end()) {
|
| - NOTREACHED(); // Shouldn't get this event for something not registered.
|
| - return false;
|
| - }
|
| -
|
| - CommandExecuted(it->second.first, it->second.second);
|
| -
|
| - return true;
|
| + return ExtensionKeybindingRegistry::NotifyEventTargetsByAccelerator(
|
| + accelerator);
|
| }
|
|
|
| bool ExtensionKeybindingRegistryViews::CanHandleAccelerators() const {
|
|
|