Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3494)

Unified Diff: chrome/browser/ui/cocoa/omnibox/omnibox_view_mac.mm

Issue 1855423003: Interpret '?' and Ctrl-K or Ctrl-E as putting omnibox in keyword search mode for Default Search Pro… (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixed unit test compilation Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698