diff options
Diffstat (limited to 'chrome/browser')
4 files changed, 12 insertions, 6 deletions
diff --git a/chrome/browser/renderer_host/render_view_host.cc b/chrome/browser/renderer_host/render_view_host.cc index 2443918..edff720 100644 --- a/chrome/browser/renderer_host/render_view_host.cc +++ b/chrome/browser/renderer_host/render_view_host.cc @@ -1178,8 +1178,7 @@ void RenderViewHost::UnhandledInputEvent(const WebInputEvent& event) { // TODO(brettw) why do we have to filter these types of events here. Can't // the renderer just send us the ones we care abount, or maybe the view // should be able to decide which ones it wants or not? - if ((event.type == WebInputEvent::RAW_KEY_DOWN) || - (event.type == WebInputEvent::KEY_DOWN) || + if ((event.type == WebInputEvent::KEY_DOWN) || (event.type == WebInputEvent::CHAR)) { view->HandleKeyboardEvent( static_cast<const WebKeyboardEvent&>(event)); diff --git a/chrome/browser/renderer_host/render_widget_host.cc b/chrome/browser/renderer_host/render_widget_host.cc index 49d7b3a..b27f835 100644 --- a/chrome/browser/renderer_host/render_widget_host.cc +++ b/chrome/browser/renderer_host/render_widget_host.cc @@ -285,8 +285,8 @@ void RenderWidgetHost::ForwardWheelEvent( void RenderWidgetHost::ForwardKeyboardEvent(const WebKeyboardEvent& key_event) { if (key_event.type == WebKeyboardEvent::CHAR && - (key_event.windows_key_code == base::VKEY_RETURN || - key_event.windows_key_code == base::VKEY_SPACE)) { + (key_event.key_code == base::VKEY_RETURN || + key_event.key_code == base::VKEY_SPACE)) { OnEnterOrSpace(); } diff --git a/chrome/browser/renderer_host/render_widget_host_view_gtk.cc b/chrome/browser/renderer_host/render_widget_host_view_gtk.cc index 9950a58..1151152 100644 --- a/chrome/browser/renderer_host/render_widget_host_view_gtk.cc +++ b/chrome/browser/renderer_host/render_widget_host_view_gtk.cc @@ -77,6 +77,13 @@ class RenderWidgetHostViewGtkWidget { RenderWidgetHostViewGtk* host_view) { WebKeyboardEvent wke(event); host_view->GetRenderWidgetHost()->ForwardKeyboardEvent(wke); + + // See note in webwidget_host_gtk.cc::HandleKeyPress(). + if (event->type == GDK_KEY_PRESS) { + wke.type = WebKeyboardEvent::CHAR; + host_view->GetRenderWidgetHost()->ForwardKeyboardEvent(wke); + } + return FALSE; } diff --git a/chrome/browser/tab_contents/web_contents_view_win.cc b/chrome/browser/tab_contents/web_contents_view_win.cc index 8013ed1..52989e4 100644 --- a/chrome/browser/tab_contents/web_contents_view_win.cc +++ b/chrome/browser/tab_contents/web_contents_view_win.cc @@ -237,13 +237,13 @@ void WebContentsViewWin::HandleKeyboardEvent(const WebKeyboardEvent& event) { // The renderer returned a keyboard event it did not process. This may be // a keyboard shortcut that we have to process. - if (event.type == WebInputEvent::RAW_KEY_DOWN) { + if (event.type == WebInputEvent::KEY_DOWN) { views::FocusManager* focus_manager = views::FocusManager::GetFocusManager(GetHWND()); // We may not have a focus_manager at this point (if the tab has been // switched by the time this message returned). if (focus_manager) { - views::Accelerator accelerator(event.windows_key_code, + views::Accelerator accelerator(event.key_code, (event.modifiers & WebInputEvent::SHIFT_KEY) == WebInputEvent::SHIFT_KEY, (event.modifiers & WebInputEvent::CTRL_KEY) == |