diff options
Diffstat (limited to 'content')
5 files changed, 46 insertions, 1 deletions
diff --git a/content/browser/renderer_host/render_widget_host_view_aura.cc b/content/browser/renderer_host/render_widget_host_view_aura.cc index 299368f..8ff3036 100644 --- a/content/browser/renderer_host/render_widget_host_view_aura.cc +++ b/content/browser/renderer_host/render_widget_host_view_aura.cc @@ -348,7 +348,10 @@ int RenderWidgetHostViewAura::GetNonClientComponent( } bool RenderWidgetHostViewAura::OnMouseEvent(aura::MouseEvent* event) { - host_->ForwardMouseEvent(content::MakeWebMouseEvent(event)); + if (event->type() == ui::ET_MOUSEWHEEL) + host_->ForwardWheelEvent(content::MakeWebMouseWheelEvent(event)); + else + host_->ForwardMouseEvent(content::MakeWebMouseEvent(event)); // Return true so that we receive released/drag events. return true; diff --git a/content/browser/renderer_host/web_input_event_aura.cc b/content/browser/renderer_host/web_input_event_aura.cc index a677b0c..65fb48f 100644 --- a/content/browser/renderer_host/web_input_event_aura.cc +++ b/content/browser/renderer_host/web_input_event_aura.cc @@ -11,10 +11,14 @@ namespace content { #if defined(OS_WIN) WebKit::WebMouseEvent MakeUntranslatedWebMouseEventFromNativeEvent( base::NativeEvent native_event); +WebKit::WebMouseWheelEvent MakeUntranslatedWebMouseWheelEventFromNativeEvent( + base::NativeEvent native_event); WebKit::WebKeyboardEvent MakeWebKeyboardEventFromNativeEvent( base::NativeEvent native_event); #else WebKit::WebMouseEvent MakeWebMouseEventFromAuraEvent(aura::MouseEvent* event); +WebKit::WebMouseWheelEvent MakeWebMouseWheelEventFromAuraEvent( + aura::MouseEvent* event); WebKit::WebKeyboardEvent MakeWebKeyboardEventFromAuraEvent( aura::KeyEvent* event); #endif @@ -63,6 +67,28 @@ WebKit::WebMouseEvent MakeWebMouseEvent(aura::MouseEvent* event) { return webkit_event; } +WebKit::WebMouseWheelEvent MakeWebMouseWheelEvent(aura::MouseEvent* event) { +#if defined(OS_WIN) + // Construct an untranslated event from the platform event data. + WebKit::WebMouseWheelEvent webkit_event = + MakeUntranslatedWebMouseWheelEventFromNativeEvent(event->native_event()); +#else + WebKit::WebMouseWheelEvent webkit_event = + MakeWebMouseWheelEventFromAuraEvent(event); +#endif + + // Replace the event's coordinate fields with translated position data from + // |event|. + webkit_event.windowX = webkit_event.x = event->x(); + webkit_event.windowY = webkit_event.y = event->y(); + + // TODO(beng): map these to screen coordinates. + webkit_event.globalX = event->x(); + webkit_event.globalY = event->y(); + + return webkit_event; +} + WebKit::WebKeyboardEvent MakeWebKeyboardEvent(aura::KeyEvent* event) { // Windows can figure out whether or not to construct a RawKeyDown or a Char // WebInputEvent based on the type of message carried in diff --git a/content/browser/renderer_host/web_input_event_aura.h b/content/browser/renderer_host/web_input_event_aura.h index b008c45..146faaa 100644 --- a/content/browser/renderer_host/web_input_event_aura.h +++ b/content/browser/renderer_host/web_input_event_aura.h @@ -16,6 +16,7 @@ class MouseEvent; namespace content { WebKit::WebMouseEvent MakeWebMouseEvent(aura::MouseEvent* event); +WebKit::WebMouseWheelEvent MakeWebMouseWheelEvent(aura::MouseEvent* event); WebKit::WebKeyboardEvent MakeWebKeyboardEvent(aura::KeyEvent* event); // TODO(beng): WebKit::WebMouseWheelEvent diff --git a/content/browser/renderer_host/web_input_event_aurawin.cc b/content/browser/renderer_host/web_input_event_aurawin.cc index d13b31f..45b1fe6 100644 --- a/content/browser/renderer_host/web_input_event_aurawin.cc +++ b/content/browser/renderer_host/web_input_event_aurawin.cc @@ -20,6 +20,14 @@ WebKit::WebMouseEvent MakeUntranslatedWebMouseEventFromNativeEvent( native_event.lParam); } +WebKit::WebMouseWheelEvent MakeUntranslatedWebMouseWheelEventFromNativeEvent( + base::NativeEvent native_event) { + return WebKit::WebInputEventFactory::mouseWheelEvent(native_event.hwnd, + native_event.message, + native_event.wParam, + native_event.lParam); +} + WebKit::WebKeyboardEvent MakeWebKeyboardEventFromNativeEvent( base::NativeEvent native_event) { return WebKit::WebInputEventFactory::keyboardEvent(native_event.hwnd, diff --git a/content/browser/renderer_host/web_input_event_aurax11.cc b/content/browser/renderer_host/web_input_event_aurax11.cc index 3633b0e..44879fd 100644 --- a/content/browser/renderer_host/web_input_event_aurax11.cc +++ b/content/browser/renderer_host/web_input_event_aurax11.cc @@ -251,6 +251,13 @@ WebKit::WebMouseEvent MakeWebMouseEventFromAuraEvent(aura::MouseEvent* event) { return webkit_event; } +WebKit::WebMouseWheelEvent MakeWebMouseWheelEventFromAuraEvent( + aura::MouseEvent* event) { + WebKit::WebMouseWheelEvent webkit_event; + // TODO(sadrul): ! + return webkit_event; +} + WebKit::WebKeyboardEvent MakeWebKeyboardEventFromAuraEvent( aura::KeyEvent* event) { base::NativeEvent native_event = event->native_event(); |