summaryrefslogtreecommitdiffstats
path: root/chrome/views/focus_manager.cc
diff options
context:
space:
mode:
authorjcampan@chromium.org <jcampan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2008-11-08 01:13:25 +0000
committerjcampan@chromium.org <jcampan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2008-11-08 01:13:25 +0000
commite8e0f3691a410d6de40bfff021b0da33425f36cb (patch)
treeeba7275ce7aac42fb014896f2b65a09026c0499c /chrome/views/focus_manager.cc
parent4adc70599db32d760184ec908f11c7d000b6b79c (diff)
downloadchromium_src-e8e0f3691a410d6de40bfff021b0da33425f36cb.zip
chromium_src-e8e0f3691a410d6de40bfff021b0da33425f36cb.tar.gz
chromium_src-e8e0f3691a410d6de40bfff021b0da33425f36cb.tar.bz2
In dialogs, when the focus moves to a button, that button should become the default button.
When the focus is not a button, then the default button should be the one the delegate specifies. BUG=4132 TEST=Open the option dialog. OK should be the default and focused button. Move the focus around by pressing tab. When a button is selected, it should be the default button. Review URL: http://codereview.chromium.org/10230 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@5056 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/views/focus_manager.cc')
-rw-r--r--chrome/views/focus_manager.cc16
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();) {