Chromium Code Reviews| Index: chrome/browser/ui/cocoa/omnibox/omnibox_view_mac.mm |
| diff --git a/chrome/browser/ui/cocoa/omnibox/omnibox_view_mac.mm b/chrome/browser/ui/cocoa/omnibox/omnibox_view_mac.mm |
| index d82e4b675ef266b88a1f40269d924c7f2e701eb4..bd15b629f6f05164c6a87941fbe3b7aaf0b03bc2 100644 |
| --- a/chrome/browser/ui/cocoa/omnibox/omnibox_view_mac.mm |
| +++ b/chrome/browser/ui/cocoa/omnibox/omnibox_view_mac.mm |
| @@ -358,18 +358,20 @@ void OmniboxViewMac::SetWindowTextAndCaretPos(const base::string16& text, |
| TextChanged(); |
| } |
| -void OmniboxViewMac::SetForcedQuery() { |
| +void OmniboxViewMac::SetCaretPos(size_t caret_pos) { |
| + [[field_ currentEditor] setSelectedRange:NSMakeRange(caret_pos, 0)]; |
| +} |
| + |
| +void OmniboxViewMac::EnterKeywordModeForDefaultSearchProvider() { |
| // We need to do this first, else |SetSelectedRange()| won't work. |
| FocusLocation(true); |
| - const base::string16 current_text(GetText()); |
| - const size_t start = current_text.find_first_not_of(base::kWhitespaceUTF16); |
| - if (start == base::string16::npos || (current_text[start] != '?')) { |
| - SetUserText(base::ASCIIToUTF16("?")); |
| - } else { |
| - NSRange range = NSMakeRange(start + 1, current_text.size() - start - 1); |
| - [[field_ currentEditor] setSelectedRange:range]; |
| - } |
| + // Transition the user into keyword mode using their default search provider. |
| + // Select their query if they typed one. |
| + model()->EnterKeywordModeForDefaultSearchProvider( |
| + KeywordModeEntryMethod::KEYBOARD_SHORTCUT); |
| + NSRange range = NSMakeRange(0, GetText().size()); |
| + [[field_ currentEditor] setSelectedRange:range]; |
|
Peter Kasting
2016/04/28 21:24:41
Looks like these two lines are just trying to do w
Tom (Use chromium acct)
2016/04/29 01:10:20
Done.
|
| } |
| bool OmniboxViewMac::IsSelectAll() const { |
| @@ -661,6 +663,8 @@ void OmniboxViewMac::OnBeforePossibleChange() { |
| selection_before_change_ = GetSelectedRange(); |
| text_before_change_ = GetText(); |
| + keyword_before_change_ = model()->keyword(); |
| + is_keyword_selected_before_change_ = model()->is_keyword_selected(); |
| marked_range_before_change_ = GetMarkedRange(); |
| } |
| @@ -670,6 +674,8 @@ bool OmniboxViewMac::OnAfterPossibleChange(bool allow_keyword_ui_change) { |
| const NSRange new_selection(GetSelectedRange()); |
| const base::string16 new_text(GetText()); |
| + const base::string16 new_keyword(model()->keyword()); |
| + const bool new_is_keyword_selected = model()->is_keyword_selected(); |
| const size_t length = new_text.length(); |
| const bool selection_differs = |
| @@ -678,6 +684,10 @@ bool OmniboxViewMac::OnAfterPossibleChange(bool allow_keyword_ui_change) { |
| const bool at_end_of_edit = (length == new_selection.location); |
| const bool text_differs = (new_text != text_before_change_) || |
| !NSEqualRanges(marked_range_before_change_, GetMarkedRange()); |
| + const bool keyword_differs = |
| + (new_is_keyword_selected != is_keyword_selected_before_change_) || |
| + (new_is_keyword_selected && is_keyword_selected_before_change_ && |
| + new_keyword != keyword_before_change_); |
| // When the user has deleted text, we don't allow inline |
| // autocomplete. This is assumed if the text has gotten shorter AND |
| @@ -698,7 +708,8 @@ bool OmniboxViewMac::OnAfterPossibleChange(bool allow_keyword_ui_change) { |
| const bool something_changed = model()->OnAfterPossibleChange( |
| text_before_change_, new_text, new_selection.location, |
| NSMaxRange(new_selection), selection_differs, text_differs, |
| - just_deleted_text, allow_keyword_ui_change && !IsImeComposing()); |
| + keyword_differs, just_deleted_text, |
| + allow_keyword_ui_change && !IsImeComposing()); |
| if (delete_was_pressed_ && at_end_of_edit) |
| delete_at_end_pressed_ = true; |
| @@ -846,7 +857,7 @@ bool OmniboxViewMac::OnDoCommandBySelector(SEL cmd) { |
| if ((cmd == @selector(insertTab:) || |
| cmd == @selector(insertTabIgnoringFieldEditor:)) && |
| model()->is_keyword_hint()) { |
| - return model()->AcceptKeyword(ENTERED_KEYWORD_MODE_VIA_TAB); |
| + return model()->AcceptKeyword(KeywordModeEntryMethod::TAB); |
| } |
| // |-noop:| is sent when the user presses Cmd+Return. Override the no-op |