Chromium Code Reviews| 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; |
| } |