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 668d9a820ea8ff5b715b1dba83d0cf0d3f6ab002..f1531deb1fa8bbcdd49a1abd7e5b30b86acfa16b 100644 |
--- a/chrome/browser/ui/omnibox/omnibox_edit_model.cc |
+++ b/chrome/browser/ui/omnibox/omnibox_edit_model.cc |
@@ -136,7 +136,7 @@ const OmniboxEditModel::State OmniboxEditModel::GetStateForTabSwitch() { |
} |
void OmniboxEditModel::RestoreState(const State& state) { |
- SetCaretVisibility(state.is_caret_visible); |
+ SetCaretVisibilityInternal(state.is_caret_visible, FOCUS_CHANGE_TAB_SWITCH); |
// Restore any user editing. |
if (state.user_input_in_progress) { |
// NOTE: Be sure and set keyword-related state BEFORE invoking |
@@ -718,8 +718,10 @@ void OmniboxEditModel::OnSetFocus(bool control_down) { |
// Restore caret visibility whenever the user focuses back into the omnibox. |
SetCaretVisibility(true); |
- if (InstantController* instant = controller_->GetInstant()) |
- instant->OmniboxGotFocus(); |
+ if (InstantController* instant = controller_->GetInstant()) { |
+ instant->OmniboxFocusChanged(FOCUS_VISIBLE, |
+ FOCUS_CHANGE_EXPLICIT, NULL); |
+ } |
content::WebContents* web_contents = controller_->GetWebContents(); |
if (web_contents) { |
@@ -736,7 +738,17 @@ void OmniboxEditModel::OnSetFocus(bool control_down) { |
} |
void OmniboxEditModel::SetCaretVisibility(bool visible) { |
+ SetCaretVisibilityInternal(visible, FOCUS_CHANGE_EXPLICIT); |
+} |
+ |
+void OmniboxEditModel::SetCaretVisibilityInternal( |
+ bool visible, |
+ OmniboxFocusChangeReason reason) { |
if (has_focus_ && visible != is_caret_visible_) { |
+ if (InstantController* instant = controller_->GetInstant()) { |
+ instant->OmniboxFocusChanged(visible ? FOCUS_VISIBLE : FOCUS_INVISIBLE, |
+ reason, NULL); |
+ } |
is_caret_visible_ = visible; |
view_->ApplyCaretVisibility(); |
} |
@@ -745,8 +757,10 @@ void OmniboxEditModel::SetCaretVisibility(bool visible) { |
void OmniboxEditModel::OnWillKillFocus(gfx::NativeView view_gaining_focus) { |
SetInstantSuggestion(InstantSuggestion()); |
- if (InstantController* instant = controller_->GetInstant()) |
- instant->OmniboxLostFocus(view_gaining_focus); |
+ if (InstantController* instant = controller_->GetInstant()) { |
+ instant->OmniboxFocusChanged(FOCUS_NONE, FOCUS_CHANGE_EXPLICIT, |
+ view_gaining_focus); |
+ } |
// TODO(jered): Rip this out along with StartZeroSuggest. |
autocomplete_controller_->StopZeroSuggest(); |
@@ -952,7 +966,7 @@ bool OmniboxEditModel::OnAfterPossibleChange(const string16& old_text, |
// Restore caret visibility whenever the user changes text or selection in the |
// omnibox. |
if (text_differs || selection_differs) |
- SetCaretVisibility(true); |
+ SetCaretVisibilityInternal(true, FOCUS_CHANGE_TYPING); |
// Modifying the selection counts as accepting the autocompleted text. |
const bool user_text_changed = |