| 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 b7d2552bff31e35030691643f373a13d5c264ec7..a22914b354cd193535f88bc95e340bccaf247ff2 100644
|
| --- a/chrome/browser/autocomplete/autocomplete_edit_view_gtk.cc
|
| +++ b/chrome/browser/autocomplete/autocomplete_edit_view_gtk.cc
|
| @@ -88,7 +88,7 @@ void AutocompleteEditViewGtk::Init() {
|
| G_CALLBACK(&HandleBeginUserActionThunk), this);
|
| g_signal_connect(text_buffer_, "end-user-action",
|
| G_CALLBACK(&HandleEndUserActionThunk), this);
|
| - // We connect to key press and release for special handling of the enter key.
|
| + // We connect to key press and release for special handling of a few keys.
|
| g_signal_connect(text_view_, "key-press-event",
|
| G_CALLBACK(&HandleKeyPressThunk), this);
|
| g_signal_connect(text_view_, "key-release-event",
|
| @@ -336,6 +336,10 @@ gboolean AutocompleteEditViewGtk::HandleKeyPress(GtkWidget* widget,
|
| model_->AcceptInput(alt_held ? NEW_FOREGROUND_TAB : CURRENT_TAB, false);
|
| return TRUE; // Don't propagate into GtkTextView.
|
| }
|
| + if (event->keyval == GDK_Escape && event->state == 0) {
|
| + model_->OnEscapeKeyPressed();
|
| + return TRUE; // Don't propagate into GtkTextView.
|
| + }
|
| return FALSE; // Propagate into GtkTextView.
|
| }
|
|
|
| @@ -344,7 +348,8 @@ gboolean AutocompleteEditViewGtk::HandleKeyRelease(GtkWidget* widget,
|
| // We ate the press, might as well eat the release.
|
| if (event->keyval == GDK_Return ||
|
| event->keyval == GDK_ISO_Enter ||
|
| - event->keyval == GDK_KP_Enter) {
|
| + event->keyval == GDK_KP_Enter ||
|
| + (event->keyval == GDK_Escape && event->state == 0)) {
|
| return TRUE; // Don't propagate into GtkTextView.
|
| }
|
| return FALSE; // Propagate into GtkTextView.
|
|
|