Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3947)

Unified Diff: chrome/browser/ui/views/find_bar_view.cc

Issue 5009001: Fixed focus requesting for the findbar. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/chrome/browser
Patch Set: merge Created 10 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/ui/views/find_bar_view.cc
diff --git a/chrome/browser/ui/views/find_bar_view.cc b/chrome/browser/ui/views/find_bar_view.cc
index 2920f2a95d137ebc9a1c37ca66968f6d944a76eb..eea85a6d7b8f7c738a8c3777f2538f980b3b79a1 100644
--- a/chrome/browser/ui/views/find_bar_view.cc
+++ b/chrome/browser/ui/views/find_bar_view.cc
@@ -26,6 +26,7 @@
#include "views/background.h"
#include "views/controls/button/image_button.h"
#include "views/controls/label.h"
+#include "views/focus/focus_manager.h"
#include "views/widget/widget.h"
// The amount of whitespace to have before the find button.
@@ -223,6 +224,23 @@ void FindBarView::UpdateForResult(const FindNotificationDetails& result,
}
void FindBarView::SetFocusAndSelection(bool select_all) {
+#if defined(OS_CHROMEOS)
+ // TODO(altimofeev): this workaround is needed only when the FindBar was
+ // opened from the wrench menu (it also works in the accelerator case, but it
+ // is not really needed).
+
+ // Restore focus to allow the find bar's external focus tracker to save the
+ // view that should be activated later (the tracker is created after the
+ // wrench menu has received the focus).
+ find_text_->GetFocusManager()->RestoreFocusedView();
+ find_text_->RequestFocus();
+ // Storing is needed here because the view that has focus before the wrench
+ // menu activation will get focus just after the wrench menu is closed.
+ // The FindBar has it's own focus tracker, so it will focus the correct view
+ // on close.
+ find_text_->GetFocusManager()->StoreFocusedView();
+ // Request focus again since the call to StoreFocusedView unfocuses the view.
+#endif
find_text_->RequestFocus();
if (select_all && !find_text_->text().empty())
find_text_->SelectAll();
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698