| 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..5a896518b4950c158196721bb311b55483a2f4cf 100644
|
| --- a/chrome/browser/ui/omnibox/omnibox_edit_model.cc
|
| +++ b/chrome/browser/ui/omnibox/omnibox_edit_model.cc
|
| @@ -313,20 +313,16 @@ bool OmniboxEditModel::UseVerbatimInstant() {
|
| return true;
|
| #endif
|
|
|
| - // The value of input.prevent_inline_autocomplete() is determined by
|
| + // The value of input.prevent_inline_autocomplete() is determined by the
|
| // following conditions:
|
| - // 1. If the caret is at the end of the text (checked below).
|
| + // 1. If the caret is at the end of the text.
|
| // 2. If it's in IME composition mode.
|
| - // As we use a separated widget for displaying the Instant suggest, it won't
|
| - // interfere with IME composition, so we don't need to care about the value of
|
| + // We send the caret position to Instant (so it can determine #1 itself), and
|
| + // we use a separated widget for displaying the Instant suggest (so it doesn't
|
| + // interfere with #2). So, we don't need to care about the value of
|
| // input.prevent_inline_autocomplete() here.
|
| - if (view_->DeleteAtEndPressed() || (popup_->selected_line() != 0) ||
|
| - just_deleted_text_ || !inline_autocomplete_text_.empty())
|
| - return true;
|
| -
|
| - size_t start, end;
|
| - view_->GetSelectionBounds(&start, &end);
|
| - return (start != end) || (start != view_->GetText().length());
|
| + return view_->DeleteAtEndPressed() || popup_->selected_line() != 0 ||
|
| + just_deleted_text_;
|
| }
|
|
|
| string16 OmniboxEditModel::GetDesiredTLD() const {
|
| @@ -1189,17 +1185,9 @@ bool OmniboxEditModel::DoInstant(const AutocompleteMatch& match) {
|
|
|
| // The two pieces of text we want to send Instant, viz., what the user has
|
| // typed, and the full omnibox text including any inline autocompletion.
|
| - string16 user_text = user_text_;
|
| - string16 full_text = user_text_ + inline_autocomplete_text_;
|
| -
|
| - // If there's temporary text, that overrides the user_text. In this case, we
|
| - // should ignore any inline_autocomplete_text_, because it won't be visible.
|
| - if (has_temporary_text_)
|
| - user_text = full_text = CurrentMatch().fill_into_edit;
|
| -
|
| - // Remove keyword if we're in keyword mode.
|
| - user_text = DisplayTextFromUserText(user_text);
|
| - full_text = DisplayTextFromUserText(full_text);
|
| + string16 user_text = has_temporary_text_ ?
|
| + match.fill_into_edit : DisplayTextFromUserText(user_text_);
|
| + string16 full_text = view_->GetText();
|
|
|
| // Remove "?" if we're in forced query mode.
|
| AutocompleteInput::RemoveForcedQueryStringIfNecessary(
|
| @@ -1207,8 +1195,11 @@ bool OmniboxEditModel::DoInstant(const AutocompleteMatch& match) {
|
| AutocompleteInput::RemoveForcedQueryStringIfNecessary(
|
| autocomplete_controller_->input().type(), &full_text);
|
|
|
| - return instant->Update(match, user_text, full_text, UseVerbatimInstant(),
|
| - user_input_in_progress_, popup_->IsOpen());
|
| + size_t start, end;
|
| + view_->GetSelectionBounds(&start, &end);
|
| +
|
| + return instant->Update(match, user_text, full_text, start, end,
|
| + UseVerbatimInstant(), user_input_in_progress_, popup_->IsOpen());
|
| }
|
|
|
| void OmniboxEditModel::DoPrerender(const AutocompleteMatch& match) {
|
|
|