| Index: chrome/browser/ui/views/omnibox/omnibox_view_views.cc
|
| ===================================================================
|
| --- chrome/browser/ui/views/omnibox/omnibox_view_views.cc (revision 119905)
|
| +++ chrome/browser/ui/views/omnibox/omnibox_view_views.cc (working copy)
|
| @@ -264,10 +264,18 @@
|
| handled = true;
|
| } else if (!handled &&
|
| event.key_code() == ui::VKEY_TAB &&
|
| - !event.IsShiftDown() &&
|
| !event.IsControlDown()) {
|
| - if (model_->is_keyword_hint()) {
|
| + if (model_->is_keyword_hint() && !event.IsShiftDown()) {
|
| handled = model_->AcceptKeyword();
|
| + } else if (model_->popup_model()->IsOpen()) {
|
| + if (event.IsShiftDown() &&
|
| + model_->popup_model()->selected_line_state() ==
|
| + AutocompletePopupModel::KEYWORD) {
|
| + model_->ClearKeyword(GetText());
|
| + } else {
|
| + model_->OnUpOrDownKeyPressed(event.IsShiftDown() ? -1 : 1);
|
| + }
|
| + handled = true;
|
| } else {
|
| string16::size_type start = 0;
|
| string16::size_type end = 0;
|
| @@ -461,14 +469,14 @@
|
| const string16& display_text,
|
| bool update_popup) {
|
| model_->SetUserText(text);
|
| - SetWindowTextAndCaretPos(display_text, display_text.length());
|
| - if (update_popup)
|
| - UpdatePopup();
|
| - TextChanged();
|
| + SetWindowTextAndCaretPos(display_text, display_text.length(), update_popup,
|
| + true);
|
| }
|
|
|
| void OmniboxViewViews::SetWindowTextAndCaretPos(const string16& text,
|
| - size_t caret_pos) {
|
| + size_t caret_pos,
|
| + bool update_popup,
|
| + bool notify_text_changed) {
|
| const ui::Range range(caret_pos, caret_pos);
|
| SetTextAndSelectedRange(text, range);
|
| }
|
| @@ -544,8 +552,7 @@
|
| if (save_original_selection)
|
| textfield_->GetSelectedRange(&saved_temporary_selection_);
|
|
|
| - SetWindowTextAndCaretPos(display_text, display_text.length());
|
| - TextChanged();
|
| + SetWindowTextAndCaretPos(display_text, display_text.length(), false, true);
|
| }
|
|
|
| bool OmniboxViewViews::OnInlineAutocompleteTextMaybeChanged(
|
|
|