Index: chrome/browser/ui/views/omnibox/omnibox_view_win.cc |
=================================================================== |
--- chrome/browser/ui/views/omnibox/omnibox_view_win.cc (revision 116848) |
+++ chrome/browser/ui/views/omnibox/omnibox_view_win.cc (working copy) |
@@ -2063,17 +2063,17 @@ |
} |
case VK_TAB: { |
- if (model_->is_keyword_hint()) { |
+ const bool shift_pressed = GetKeyState(VK_SHIFT) < 0; |
+ if (model_->is_keyword_hint() && !shift_pressed) { |
// Accept the keyword. |
ScopedFreeze freeze(this, GetTextObjectModel()); |
model_->AcceptKeyword(); |
- } else if (!IsCaretAtEnd()) { |
- ScopedFreeze freeze(this, GetTextObjectModel()); |
- OnBeforePossibleChange(); |
- PlaceCaretAt(GetTextLength()); |
- OnAfterPossibleChange(); |
+ } else if (shift_pressed && |
+ model_->popup_model()->selected_line_state() == |
+ AutocompletePopupModel::KEYWORD) { |
+ model_->ClearKeyword(GetText()); |
} else { |
- model_->CommitSuggestedText(true); |
+ model_->OnUpOrDownKeyPressed(shift_pressed ? -count : count); |
} |
return true; |
} |