Chromium Code Reviews| Index: chrome/browser/extensions/extension_commands_global_registry.cc |
| diff --git a/chrome/browser/extensions/extension_commands_global_registry.cc b/chrome/browser/extensions/extension_commands_global_registry.cc |
| index a7ebd898adb45e492f0a174f1b4526de787b1573..ac072936f91b9b93517e240d54be5a89c3980b8c 100644 |
| --- a/chrome/browser/extensions/extension_commands_global_registry.cc |
| +++ b/chrome/browser/extensions/extension_commands_global_registry.cc |
| @@ -24,10 +24,18 @@ ExtensionCommandsGlobalRegistry::ExtensionCommandsGlobalRegistry( |
| } |
| ExtensionCommandsGlobalRegistry::~ExtensionCommandsGlobalRegistry() { |
| - EventTargets::const_iterator iter; |
| - for (iter = event_targets_.begin(); iter != event_targets_.end(); ++iter) { |
| + EventTargets::const_iterator eit; |
| + for (eit = event_targets_.begin(); eit != event_targets_.end(); ++eit) { |
| GlobalShortcutListener::GetInstance()->UnregisterAccelerator( |
| - iter->first, this); |
| + eit->first, this); |
| + } |
|
Finnur
2013/11/12 16:27:54
I'm not too keen on the iter -> eit/mit change her
zhchbin
2013/11/13 05:01:57
Done.
|
| + |
| + MediaKeysEventTargets::const_iterator mit; |
| + for (mit = media_keys_event_targets_.begin(); |
| + mit != media_keys_event_targets_.end(); |
| + ++mit) { |
| + GlobalShortcutListener::GetInstance()->UnregisterAccelerator( |
| + mit->first, this); |
| } |
| } |
| @@ -76,8 +84,14 @@ void ExtensionCommandsGlobalRegistry::AddExtensionKeybinding( |
| << " " << command_name.c_str() |
| << " key: " << iter->second.accelerator().GetShortcutText(); |
| - 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()); |
| + } |
| GlobalShortcutListener::GetInstance()->RegisterAccelerator( |
| iter->second.accelerator(), this); |
| @@ -95,13 +109,7 @@ void ExtensionCommandsGlobalRegistry::RemoveExtensionKeybindingImpl( |
| void ExtensionCommandsGlobalRegistry::OnKeyPressed( |
| 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; |
| - } |
| - |
| - CommandExecuted(it->second.first, it->second.second); |
| + ExtensionKeybindingRegistry::NotifyEventTargetsByAccelerator(accelerator); |
| } |
| } // namespace extensions |