Index: chrome/browser/ui/omnibox/omnibox_edit_model.cc |
diff --git a/chrome/browser/ui/omnibox/omnibox_edit_model.cc b/chrome/browser/ui/omnibox/omnibox_edit_model.cc |
index 02eb0f1102c50386d8ad588f590a9878967eb2f1..c025019b81d11b9310ed585d6bd332c3d388fb91 100644 |
--- a/chrome/browser/ui/omnibox/omnibox_edit_model.cc |
+++ b/chrome/browser/ui/omnibox/omnibox_edit_model.cc |
@@ -70,11 +70,13 @@ using predictors::AutocompleteActionPredictorFactory; |
OmniboxEditModel::State::State(bool user_input_in_progress, |
const string16& user_text, |
const string16& keyword, |
- bool is_keyword_hint) |
+ bool is_keyword_hint, |
+ bool is_focus_visible) |
: user_input_in_progress(user_input_in_progress), |
user_text(user_text), |
keyword(keyword), |
- is_keyword_hint(is_keyword_hint) { |
+ is_keyword_hint(is_keyword_hint), |
+ is_focus_visible(is_focus_visible) { |
} |
OmniboxEditModel::State::~State() { |
@@ -90,6 +92,7 @@ OmniboxEditModel::OmniboxEditModel(OmniboxView* view, |
popup_(NULL), |
controller_(controller), |
has_focus_(false), |
+ is_focus_visible_(true), |
user_input_in_progress_(false), |
just_deleted_text_(false), |
has_temporary_text_(false), |
@@ -128,10 +131,12 @@ const OmniboxEditModel::State OmniboxEditModel::GetStateForTabSwitch() { |
} |
} |
- return State(user_input_in_progress_, user_text_, keyword_, is_keyword_hint_); |
+ return State(user_input_in_progress_, user_text_, keyword_, is_keyword_hint_, |
+ is_focus_visible_); |
} |
void OmniboxEditModel::RestoreState(const State& state) { |
+ SetFocusVisibility(state.is_focus_visible); |
// Restore any user editing. |
if (state.user_input_in_progress) { |
// NOTE: Be sure and set keyword-related state BEFORE invoking |
@@ -732,6 +737,13 @@ void OmniboxEditModel::OnSetFocus(bool control_down) { |
NotifySearchTabHelper(); |
} |
+void OmniboxEditModel::SetFocusVisibility(bool visible) { |
+ if (visible != is_focus_visible_) { |
+ is_focus_visible_ = visible; |
+ view_->ApplyFocusVisibility(); |
+ } |
+} |
+ |
void OmniboxEditModel::OnWillKillFocus(gfx::NativeView view_gaining_focus) { |
SetInstantSuggestion(InstantSuggestion()); |
@@ -745,6 +757,7 @@ void OmniboxEditModel::OnWillKillFocus(gfx::NativeView view_gaining_focus) { |
void OmniboxEditModel::OnKillFocus() { |
has_focus_ = false; |
+ is_focus_visible_ = true; |
Peter Kasting
2012/12/04 02:00:52
I'm a little confused about the distinction betwee
samarth
2012/12/04 04:55:35
So the call in SetFocus can't be moved to OnSetFoc
|
control_key_state_ = UP; |
paste_state_ = NONE; |
} |