| Index: views/widget/widget_gtk.cc
|
| diff --git a/views/widget/widget_gtk.cc b/views/widget/widget_gtk.cc
|
| index 245ebeb4f6ed1260ee8d034bab7718c9b252b881..0149b2c24f6eabf5da60aa3b57390fe08d007875 100644
|
| --- a/views/widget/widget_gtk.cc
|
| +++ b/views/widget/widget_gtk.cc
|
| @@ -1280,12 +1280,8 @@ gboolean WidgetGtk::OnFocusOut(GtkWidget* widget, GdkEventFocus* event) {
|
| }
|
|
|
| gboolean WidgetGtk::OnKeyEvent(GtkWidget* widget, GdkEventKey* event) {
|
| - KeyEvent key(reinterpret_cast<NativeEvent>(event));
|
| - if (input_method_.get())
|
| - input_method_->DispatchKeyEvent(key);
|
| - else
|
| - DispatchKeyEventPostIME(key);
|
| -
|
| + KeyEvent key_event(reinterpret_cast<NativeEvent>(event));
|
| + delegate_->OnKeyEvent(key_event);
|
| // Returns true to prevent GtkWindow's default key event handler.
|
| return true;
|
| }
|
| @@ -1365,7 +1361,7 @@ gfx::AcceleratedWidget WidgetGtk::GetAcceleratedWidget() {
|
| return GDK_WINDOW_XID(window_contents_->window);
|
| }
|
|
|
| -void WidgetGtk::DispatchKeyEventPostIME(const KeyEvent& key) {
|
| +bool WidgetGtk::DispatchKeyEventPostIME(const KeyEvent& key) {
|
| // Always reset |should_handle_menu_key_release_| unless we are handling a
|
| // VKEY_MENU key release event. It ensures that VKEY_MENU accelerator can only
|
| // be activated when handling a VKEY_MENU key release event which is preceded
|
| @@ -1373,13 +1369,11 @@ void WidgetGtk::DispatchKeyEventPostIME(const KeyEvent& key) {
|
| if (key.key_code() != ui::VKEY_MENU || key.type() != ui::ET_KEY_RELEASED)
|
| should_handle_menu_key_release_ = false;
|
|
|
| - bool handled = false;
|
| -
|
| - // Dispatch the key event to View hierarchy first.
|
| - handled = GetRootView()->ProcessKeyEvent(key);
|
| + // Send the key event to View hierarchy first.
|
| + bool handled = GetRootView()->OnKeyEvent(key);
|
|
|
| if (key.key_code() == ui::VKEY_PROCESSKEY || handled)
|
| - return;
|
| + return true;
|
|
|
| // Dispatch the key event to native GtkWidget hierarchy.
|
| // To prevent GtkWindow from handling the key event as a keybinding, we need
|
| @@ -1401,7 +1395,9 @@ void WidgetGtk::DispatchKeyEventPostIME(const KeyEvent& key) {
|
|
|
| // Dispatch the key event for bindings processing.
|
| if (!handled && event && GTK_IS_WINDOW(widget_))
|
| - gtk_bindings_activate_event(GTK_OBJECT(widget_), event);
|
| + handled = gtk_bindings_activate_event(GTK_OBJECT(widget_), event);
|
| +
|
| + return handled;
|
| }
|
|
|
| gboolean WidgetGtk::OnWindowPaint(GtkWidget* widget, GdkEventExpose* event) {
|
|
|