diff options
author | isherman@chromium.org <isherman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-08-26 21:52:49 +0000 |
---|---|---|
committer | isherman@chromium.org <isherman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-08-26 21:52:49 +0000 |
commit | 1c4963245b3b8bf0939c21634857a12d1b7135a9 (patch) | |
tree | fe6c6ccb41cf1f5057a7fd38fb42d0c107914c00 | |
parent | 61398156d8c68470a29914d77191f16df69b4c84 (diff) | |
download | chromium_src-1c4963245b3b8bf0939c21634857a12d1b7135a9.zip chromium_src-1c4963245b3b8bf0939c21634857a12d1b7135a9.tar.gz chromium_src-1c4963245b3b8bf0939c21634857a12d1b7135a9.tar.bz2 |
Don't inline autocomplete when the selected text is not the previously inline autocompleted text.
BUG=7894
TEST=none
Review URL: http://codereview.chromium.org/3136036
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@57592 0039d316-1c4b-4281-b951-d872f2087c98
5 files changed, 10 insertions, 4 deletions
diff --git a/chrome/browser/autocomplete/autocomplete_edit.cc b/chrome/browser/autocomplete/autocomplete_edit.cc index 230cbf7..b4b09c3 100644 --- a/chrome/browser/autocomplete/autocomplete_edit.cc +++ b/chrome/browser/autocomplete/autocomplete_edit.cc @@ -281,9 +281,11 @@ void AutocompleteEditModel::Revert() { } void AutocompleteEditModel::StartAutocomplete( + bool has_selected_text, bool prevent_inline_autocomplete) const { popup_->StartAutocomplete(user_text_, GetDesiredTLD(), prevent_inline_autocomplete || just_deleted_text_ || + (has_selected_text && inline_autocomplete_text_.empty()) || (paste_state_ != NONE), keyword_ui_state_ == KEYWORD); } diff --git a/chrome/browser/autocomplete/autocomplete_edit.h b/chrome/browser/autocomplete/autocomplete_edit.h index 99374a6..38804999 100644 --- a/chrome/browser/autocomplete/autocomplete_edit.h +++ b/chrome/browser/autocomplete/autocomplete_edit.h @@ -179,7 +179,8 @@ class AutocompleteEditModel : public NotificationObserver { void Revert(); // Directs the popup to start autocomplete. - void StartAutocomplete(bool prevent_inline_autocomplete) const; + void StartAutocomplete(bool has_selected_text, + bool prevent_inline_autocomplete) const; // Determines whether the user can "paste and go", given the specified text. // This also updates the internal paste-and-go-related state variables as diff --git a/chrome/browser/autocomplete/autocomplete_edit_view_gtk.cc b/chrome/browser/autocomplete/autocomplete_edit_view_gtk.cc index 43ab216..e3508f4 100644 --- a/chrome/browser/autocomplete/autocomplete_edit_view_gtk.cc +++ b/chrome/browser/autocomplete/autocomplete_edit_view_gtk.cc @@ -479,7 +479,8 @@ void AutocompleteEditViewGtk::UpdatePopup() { // Don't inline autocomplete when the caret/selection isn't at the end of // the text. CharRange sel = GetSelection(); - model_->StartAutocomplete(std::max(sel.cp_max, sel.cp_min) < GetTextLength()); + model_->StartAutocomplete(sel.cp_min != sel.cp_max, + std::max(sel.cp_max, sel.cp_min) < GetTextLength()); } void AutocompleteEditViewGtk::ClosePopup() { diff --git a/chrome/browser/autocomplete/autocomplete_edit_view_mac.mm b/chrome/browser/autocomplete/autocomplete_edit_view_mac.mm index 2fa3540..916cefc 100644 --- a/chrome/browser/autocomplete/autocomplete_edit_view_mac.mm +++ b/chrome/browser/autocomplete/autocomplete_edit_view_mac.mm @@ -407,7 +407,8 @@ void AutocompleteEditViewMac::UpdatePopup() { prevent_inline_autocomplete = true; } - model_->StartAutocomplete(prevent_inline_autocomplete); + model_->StartAutocomplete([editor selectedRange].length != 0, + prevent_inline_autocomplete); } void AutocompleteEditViewMac::ClosePopup() { diff --git a/chrome/browser/autocomplete/autocomplete_edit_view_win.cc b/chrome/browser/autocomplete/autocomplete_edit_view_win.cc index f7204a5..802e54d 100644 --- a/chrome/browser/autocomplete/autocomplete_edit_view_win.cc +++ b/chrome/browser/autocomplete/autocomplete_edit_view_win.cc @@ -691,7 +691,8 @@ void AutocompleteEditViewWin::UpdatePopup() { // * The user is trying to compose something in an IME CHARRANGE sel; GetSel(sel); - model_->StartAutocomplete((sel.cpMax < GetTextLength()) || ime_composing); + model_->StartAutocomplete(sel.cpMax != sel.cpMin, + (sel.cpMax < GetTextLength()) || ime_composing); } void AutocompleteEditViewWin::ClosePopup() { |