summaryrefslogtreecommitdiffstats
path: root/content
diff options
context:
space:
mode:
Diffstat (limited to 'content')
-rw-r--r--content/browser/renderer_host/render_widget_host_view_aura.cc5
-rw-r--r--content/browser/renderer_host/web_input_event_aura.cc26
-rw-r--r--content/browser/renderer_host/web_input_event_aura.h1
-rw-r--r--content/browser/renderer_host/web_input_event_aurawin.cc8
-rw-r--r--content/browser/renderer_host/web_input_event_aurax11.cc7
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();