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

Unified Diff: chrome/browser/autocomplete/autocomplete_edit_view_gtk.cc

Issue 5339014: [gtk] tab in omnibox (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: comment retval Created 10 years, 1 month 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
« no previous file with comments | « chrome/browser/autocomplete/autocomplete_edit.h ('k') | chrome/browser/gtk/location_bar_view_gtk.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/autocomplete/autocomplete_edit_view_gtk.cc
diff --git a/chrome/browser/autocomplete/autocomplete_edit_view_gtk.cc b/chrome/browser/autocomplete/autocomplete_edit_view_gtk.cc
index 5bad09c6fed0e8747efbecc6771d620af0f77b66..6e47128b6549f5c0ef85ae32b6b01a58996311f7 100644
--- a/chrome/browser/autocomplete/autocomplete_edit_view_gtk.cc
+++ b/chrome/browser/autocomplete/autocomplete_edit_view_gtk.cc
@@ -892,20 +892,20 @@ gboolean AutocompleteEditViewGtk::HandleKeyPress(GtkWidget* widget,
GtkWidgetClass* klass = GTK_WIDGET_GET_CLASS(widget);
- enter_was_pressed_ = (event->keyval == GDK_Return ||
- event->keyval == GDK_ISO_Enter ||
- event->keyval == GDK_KP_Enter);
+ enter_was_pressed_ = event->keyval == GDK_Return ||
+ event->keyval == GDK_ISO_Enter ||
+ event->keyval == GDK_KP_Enter;
// Set |tab_was_pressed_| to true if it's a Tab key press event, so that our
// handler of "move-focus" signal can trigger Tab to search behavior when
// necessary.
- tab_was_pressed_ = ((event->keyval == GDK_Tab ||
- event->keyval == GDK_ISO_Left_Tab ||
- event->keyval == GDK_KP_Tab) &&
- !(event->state & GDK_CONTROL_MASK));
+ tab_was_pressed_ = (event->keyval == GDK_Tab ||
+ event->keyval == GDK_ISO_Left_Tab ||
+ event->keyval == GDK_KP_Tab) &&
+ !(event->state & (GDK_CONTROL_MASK | GDK_SHIFT_MASK));
- delete_was_pressed_ = (event->keyval == GDK_Delete ||
- event->keyval == GDK_KP_Delete);
+ delete_was_pressed_ = event->keyval == GDK_Delete ||
+ event->keyval == GDK_KP_Delete;
// Reset |enter_was_inserted_|, which may be set in the "insert-text" signal
// handler, so that we'll know if an Enter key event was handled by IME.
@@ -1385,18 +1385,32 @@ void AutocompleteEditViewGtk::HandleBackSpace(GtkWidget* sender) {
void AutocompleteEditViewGtk::HandleViewMoveFocus(GtkWidget* widget,
GtkDirectionType direction) {
+ if (!tab_was_pressed_)
+ return;
+
+ // If special behavior is triggered, then stop the signal emission to
+ // prevent the focus from being moved.
+ bool handled = false;
+
// Trigger Tab to search behavior only when Tab key is pressed.
- if (tab_was_pressed_ && enable_tab_to_search_ &&
- model_->is_keyword_hint() && !model_->keyword().empty()) {
- model_->AcceptKeyword();
+ if (model_->is_keyword_hint() && !model_->keyword().empty()) {
+ if (enable_tab_to_search_) {
+ model_->AcceptKeyword();
+ handled = true;
+ }
+ } else {
+ if (GTK_WIDGET_VISIBLE(instant_view_)) {
+ controller_->OnCommitSuggestedText(GetText());
+ handled = true;
+ } else {
+ handled = controller_->AcceptCurrentInstantPreview();
+ }
+ }
- // If Tab to search behavior is triggered, then stop the signal emission to
- // prevent the focus from being moved.
+ if (handled) {
static guint signal_id = g_signal_lookup("move-focus", GTK_TYPE_WIDGET);
g_signal_stop_emission(widget, signal_id, 0);
}
-
- // Propagate the signal so that focus can be moved as normal.
}
void AutocompleteEditViewGtk::HandleCopyClipboard(GtkWidget* sender) {
« no previous file with comments | « chrome/browser/autocomplete/autocomplete_edit.h ('k') | chrome/browser/gtk/location_bar_view_gtk.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698