diff options
Diffstat (limited to 'chrome/views/focus_manager.cc')
-rw-r--r-- | chrome/views/focus_manager.cc | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/chrome/views/focus_manager.cc b/chrome/views/focus_manager.cc index 4ea004c..4164cb8 100644 --- a/chrome/views/focus_manager.cc +++ b/chrome/views/focus_manager.cc @@ -697,6 +697,22 @@ AcceleratorTarget* FocusManager::RegisterAccelerator( return previous_target; } +void FocusManager::UnregisterAccelerator(const Accelerator& accelerator, + AcceleratorTarget* target) { + AcceleratorMap::iterator iter = accelerators_.find(accelerator); + if (iter == accelerators_.end()) { + NOTREACHED() << "Unregistering non-existing accelerator"; + return; + } + + if (iter->second != target) { + NOTREACHED() << "Unregistering accelerator for wrong target"; + return; + } + + accelerators_.erase(iter); +} + void FocusManager::UnregisterAccelerators(AcceleratorTarget* target) { for (AcceleratorMap::iterator iter = accelerators_.begin(); iter != accelerators_.end();) { |