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

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

Issue 6731036: Enabled pressing TAB to cycle through the Omnibox results. (Closed) Base URL: http://src.chromium.org/svn/trunk/src/
Patch Set: '' Created 8 years, 11 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
===================================================================
--- chrome/browser/ui/cocoa/omnibox/omnibox_view_mac.mm (revision 119905)
+++ chrome/browser/ui/cocoa/omnibox/omnibox_view_mac.mm (working copy)
@@ -329,11 +329,8 @@
model_->SetUserText(text);
// TODO(shess): TODO below from gtk.
// TODO(deanm): something about selection / focus change here.
- SetText(display_text);
- if (update_popup) {
- UpdatePopup();
- }
- model_->OnChanged();
+ SetWindowTextAndCaretPos(display_text, display_text.length(), update_popup,
+ true);
}
NSRange OmniboxViewMac::GetSelectedRange() const {
@@ -364,9 +361,17 @@
}
void OmniboxViewMac::SetWindowTextAndCaretPos(const string16& text,
- size_t caret_pos) {
+ size_t caret_pos,
+ bool update_popup,
+ bool notify_text_changed) {
DCHECK_LE(caret_pos, text.size());
SetTextAndSelectedRange(text, NSMakeRange(caret_pos, caret_pos));
+
+ if (update_popup)
+ UpdatePopup();
+
+ if (notify_text_changed)
+ TextChanged();
}
void OmniboxViewMac::SetForcedQuery() {
@@ -532,6 +537,11 @@
}
}
+void OmniboxViewMac::TextChanged() {
+ EmphasizeURLComponents();
+ model_->OnChanged();
+}
+
void OmniboxViewMac::ApplyTextAttributes(const string16& display_text,
NSMutableAttributedString* as) {
NSUInteger as_length = [as length];
@@ -606,7 +616,7 @@
saved_temporary_selection_ = GetSelectedRange();
suggest_text_length_ = 0;
- SetWindowTextAndCaretPos(display_text, display_text.size());
+ SetWindowTextAndCaretPos(display_text, display_text.size(), false, false);
model_->OnChanged();
[field_ clearUndoChain];
}
@@ -698,8 +708,7 @@
// Linux watches for something_changed && text_differs, but that
// fails for us in case you copy the URL and paste the identical URL
// back (we'll lose the styling).
- EmphasizeURLComponents();
- model_->OnChanged();
+ TextChanged();
delete_was_pressed_ = false;
@@ -793,7 +802,7 @@
if (cmd == @selector(deleteForward:))
delete_was_pressed_ = true;
- // Don't intercept up/down-arrow if the popup isn't open.
+ // Don't intercept up/down-arrow or backtab if the popup isn't open.
if (popup_view_->IsOpen()) {
if (cmd == @selector(moveDown:)) {
model_->OnUpOrDownKeyPressed(1);
@@ -804,6 +813,13 @@
model_->OnUpOrDownKeyPressed(-1);
return true;
}
+
+ if (cmd == @selector(insertBacktab:) &&
+ model_->popup_model()->selected_line_state() ==
+ AutocompletePopupModel::KEYWORD) {
+ model_->ClearKeyword(GetText());
+ return true;
+ }
}
if (cmd == @selector(moveRight:)) {
@@ -829,26 +845,10 @@
return model_->OnEscapeKeyPressed();
}
- if (cmd == @selector(insertTab:) ||
- cmd == @selector(insertTabIgnoringFieldEditor:)) {
- if (model_->is_keyword_hint())
- return model_->AcceptKeyword();
-
- if (suggest_text_length_ > 0) {
- model_->CommitSuggestedText(true);
- return true;
- }
-
- if (!IsCaretAtEnd()) {
- PlaceCaretAt(GetTextLength());
- // OnDidChange() will not be triggered when setting selected range in this
- // method, so we need to call it explicitly.
- OnDidChange();
- return true;
- }
-
- if (model_->AcceptCurrentInstantPreview())
- return true;
+ if ((cmd == @selector(insertTab:) ||
+ cmd == @selector(insertTabIgnoringFieldEditor:)) &&
+ model_->is_keyword_hint()) {
+ return model_->AcceptKeyword();
}
// |-noop:| is sent when the user presses Cmd+Return. Override the no-op
« no previous file with comments | « chrome/browser/ui/cocoa/omnibox/omnibox_view_mac.h ('k') | chrome/browser/ui/gtk/omnibox/omnibox_popup_view_gtk.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698