summaryrefslogtreecommitdiffstats
path: root/chrome
diff options
context:
space:
mode:
Diffstat (limited to 'chrome')
-rw-r--r--chrome/browser/views/find_bar_win.cc25
-rw-r--r--chrome/browser/views/find_bar_win.h5
-rw-r--r--chrome/browser/views/find_bar_win_browsertest.cc6
3 files changed, 13 insertions, 23 deletions
diff --git a/chrome/browser/views/find_bar_win.cc b/chrome/browser/views/find_bar_win.cc
index 4b2d7ec..f3bfdd7 100644
--- a/chrome/browser/views/find_bar_win.cc
+++ b/chrome/browser/views/find_bar_win.cc
@@ -90,7 +90,7 @@ FindBarWin::FindBarWin(BrowserView* browser_view)
: browser_view_(browser_view),
find_dialog_animation_offset_(0),
focus_manager_(NULL),
- old_accel_target_for_esc_(NULL),
+ esc_accel_target_registered_(false),
find_bar_controller_(NULL) {
gfx::NativeView parent_view = browser_view->GetWidget()->GetNativeView();
@@ -574,7 +574,7 @@ void FindBarWin::SetFocusChangeListener(gfx::NativeView parent_view) {
// FocusManager, which means we need to clean up old listener and start a new
// one with the new FocusManager.
if (focus_manager_) {
- if (old_accel_target_for_esc_)
+ if (esc_accel_target_registered_)
UnregisterEscAccelerator();
focus_manager_->RemoveFocusChangeListener(this);
}
@@ -603,15 +603,10 @@ FindBarTesting* FindBarWin::GetFindBarTesting() {
void FindBarWin::RegisterEscAccelerator() {
#if defined(OS_WIN)
+ DCHECK(!esc_accel_target_registered_);
views::Accelerator escape(VK_ESCAPE, false, false, false);
-
- // TODO(finnur): Once we fix issue 1307173 we should not remember any old
- // accelerator targets and just Register and Unregister when needed.
- views::AcceleratorTarget* old_target =
- focus_manager_->RegisterAccelerator(escape, this);
-
- if (!old_accel_target_for_esc_)
- old_accel_target_for_esc_ = old_target;
+ focus_manager_->RegisterAccelerator(escape, this);
+ esc_accel_target_registered_ = true;
#else
NOTIMPLEMENTED();
#endif
@@ -619,14 +614,10 @@ void FindBarWin::RegisterEscAccelerator() {
void FindBarWin::UnregisterEscAccelerator() {
#if defined(OS_WIN)
- // TODO(finnur): Once we fix issue 1307173 we should not remember any old
- // accelerator targets and just Register and Unregister when needed.
- DCHECK(old_accel_target_for_esc_ != NULL);
+ DCHECK(esc_accel_target_registered_);
views::Accelerator escape(VK_ESCAPE, false, false, false);
- views::AcceleratorTarget* current_target =
- focus_manager_->GetTargetForAccelerator(escape);
- if (current_target == this)
- focus_manager_->RegisterAccelerator(escape, old_accel_target_for_esc_);
+ focus_manager_->UnregisterAccelerator(escape, this);
+ esc_accel_target_registered_ = false;
#else
NOTIMPLEMENTED();
#endif
diff --git a/chrome/browser/views/find_bar_win.h b/chrome/browser/views/find_bar_win.h
index d59c4c23..db7b3e7 100644
--- a/chrome/browser/views/find_bar_win.h
+++ b/chrome/browser/views/find_bar_win.h
@@ -166,9 +166,8 @@ class FindBarWin : public views::AcceleratorTarget,
// The focus manager we register with to keep track of focus changes.
views::FocusManager* focus_manager_;
- // Stores the previous accelerator target for the Escape key, so that we can
- // restore the state once we loose focus.
- views::AcceleratorTarget* old_accel_target_for_esc_;
+ // True if the accelerator target for Esc key is registered.
+ bool esc_accel_target_registered_;
// Tracks and stores the last focused view which is not the FindBarView
// or any of its children. Used to restore focus once the FindBarView is
diff --git a/chrome/browser/views/find_bar_win_browsertest.cc b/chrome/browser/views/find_bar_win_browsertest.cc
index 724b7c6..98a8111 100644
--- a/chrome/browser/views/find_bar_win_browsertest.cc
+++ b/chrome/browser/views/find_bar_win_browsertest.cc
@@ -563,7 +563,7 @@ IN_PROC_BROWSER_TEST_F(FindInPageControllerTest, AcceleratorRestoring) {
// See where Escape is registered.
views::Accelerator escape(VK_ESCAPE, false, false, false);
views::AcceleratorTarget* old_target =
- focus_manager->GetTargetForAccelerator(escape);
+ focus_manager->GetCurrentTargetForAccelerator(escape);
EXPECT_TRUE(old_target != NULL);
// Open the Find box.
@@ -571,7 +571,7 @@ IN_PROC_BROWSER_TEST_F(FindInPageControllerTest, AcceleratorRestoring) {
// Our Find bar should be the new target.
views::AcceleratorTarget* new_target =
- focus_manager->GetTargetForAccelerator(escape);
+ focus_manager->GetCurrentTargetForAccelerator(escape);
EXPECT_TRUE(new_target != NULL);
EXPECT_NE(new_target, old_target);
@@ -580,5 +580,5 @@ IN_PROC_BROWSER_TEST_F(FindInPageControllerTest, AcceleratorRestoring) {
browser()->find_bar()->EndFindSession();
// The accelerator for Escape should be back to what it was before.
- EXPECT_EQ(old_target, focus_manager->GetTargetForAccelerator(escape));
+ EXPECT_EQ(old_target, focus_manager->GetCurrentTargetForAccelerator(escape));
}