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 1ee5a15327400d4307d27690136da4b433518f47..1baabef4b209091cd0cca5f643958b0c7ff56cf2 100644 |
--- a/chrome/browser/autocomplete/autocomplete_edit_view_gtk.cc |
+++ b/chrome/browser/autocomplete/autocomplete_edit_view_gtk.cc |
@@ -459,6 +459,7 @@ gboolean AutocompleteEditViewGtk::HandleKeyPress(GtkWidget* widget, |
if (event->keyval == GDK_Return || |
event->keyval == GDK_ISO_Enter || |
event->keyval == GDK_KP_Enter || |
+ event->keyval == GDK_Tab || |
(event->keyval == GDK_Escape && event->state == 0)) { |
// Handle IME. This is basically taken from GtkTextView and reworked a bit. |
GtkTextIter iter; |
@@ -475,7 +476,13 @@ gboolean AutocompleteEditViewGtk::HandleKeyPress(GtkWidget* widget, |
} |
} else { |
// Ok, not handled by the IME, we can handle it. |
- if (event->keyval == GDK_Escape) { |
+ if (event->keyval == GDK_Tab) { |
+ if (model_->is_keyword_hint() && !model_->keyword().empty()) { |
+ model_->AcceptKeyword(); |
+ } else { |
+ return FALSE; // Let GtkTextView handle the tab focus change. |
+ } |
+ } else if (event->keyval == GDK_Escape) { |
model_->OnEscapeKeyPressed(); |
} else { |
bool alt_held = (event->state & GDK_MOD1_MASK); |