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

Unified Diff: views/widget/widget_gtk.cc

Issue 6823055: Consolidate OnKeyEvent and InputMethod code. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Reduce the scope of this change. Created 9 years, 8 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: views/widget/widget_gtk.cc
diff --git a/views/widget/widget_gtk.cc b/views/widget/widget_gtk.cc
index d6655da8f6b252fa92de8382a1ba31e7e08fb381..180e5811cecba86313ec826d7ce76b74fe18171a 100644
--- a/views/widget/widget_gtk.cc
+++ b/views/widget/widget_gtk.cc
@@ -1262,11 +1262,7 @@ 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);
-
+ delegate->OnKeyEvent(key_event);
// Returns true to prevent GtkWindow's default key event handler.
return true;
}
@@ -1346,7 +1342,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
@@ -1354,13 +1350,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);
+ bool handled = Widget::DispatchKeyEventPostIME(key);
if (key.key_code() == ui::VKEY_PROCESSKEY || handled)
Ben Goodger (Google) 2011/04/12 21:11:15 See my comment in widget.cc. Once you make those
msw 2011/04/14 21:47:39 Not so, if I understand suzhe and InputHandlerGtk
- return;
+ return handled;
// Dispatch the key event to native GtkWidget hierarchy.
// To prevent GtkWindow from handling the key event as a keybinding, we need
@@ -1382,7 +1376,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) {

Powered by Google App Engine
This is Rietveld 408576698