summaryrefslogtreecommitdiffstats
path: root/content
diff options
context:
space:
mode:
authordavemoore@chromium.org <davemoore@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-03-20 02:47:24 +0000
committerdavemoore@chromium.org <davemoore@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-03-20 02:47:24 +0000
commit91e20036b8f64ca6fdf5f5c039f7e44f5aa39cbf (patch)
tree4d9be997f9719c3175cb0fd1a633238b8794723d /content
parenta3b9f461cc5696349276e09c4c396a030ecab1e0 (diff)
downloadchromium_src-91e20036b8f64ca6fdf5f5c039f7e44f5aa39cbf.zip
chromium_src-91e20036b8f64ca6fdf5f5c039f7e44f5aa39cbf.tar.gz
chromium_src-91e20036b8f64ca6fdf5f5c039f7e44f5aa39cbf.tar.bz2
Send GestureFlingStart and GestureFlingCancel when cmt sends them
BUG=114818 TEST=None Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=127606 Review URL: https://chromiumcodereview.appspot.com/9601022 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@127629 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content')
-rw-r--r--content/browser/renderer_host/render_widget_host_view_aura.cc8
-rw-r--r--content/browser/renderer_host/web_input_event_aura.cc21
-rw-r--r--content/browser/renderer_host/web_input_event_aura.h1
-rw-r--r--content/browser/renderer_host/web_input_event_aurax11.cc26
4 files changed, 54 insertions, 2 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 cf9f28b..7f462cf 100644
--- a/content/browser/renderer_host/render_widget_host_view_aura.cc
+++ b/content/browser/renderer_host/render_widget_host_view_aura.cc
@@ -925,8 +925,12 @@ bool RenderWidgetHostViewAura::OnMouseEvent(aura::MouseEvent* event) {
} else if (event->type() == ui::ET_SCROLL) {
WebKit::WebMouseWheelEvent mouse_wheel_event =
content::MakeWebMouseWheelEvent(static_cast<aura::ScrollEvent*>(event));
- if (mouse_wheel_event.deltaX != 0 || mouse_wheel_event.deltaY != 0)
- host_->ForwardWheelEvent(mouse_wheel_event);
+ host_->ForwardWheelEvent(mouse_wheel_event);
+ } else if (event->type() == ui::ET_SCROLL_FLING_START ||
+ event->type() == ui::ET_SCROLL_FLING_CANCEL) {
+ WebKit::WebGestureEvent gesture_event =
+ content::MakeWebGestureEvent(static_cast<aura::ScrollEvent*>(event));
+ host_->ForwardGestureEvent(gesture_event);
} else if (CanRendererHandleEvent(event)) {
WebKit::WebMouseEvent mouse_event = content::MakeWebMouseEvent(event);
ModifyEventMovementAndCoords(&mouse_event);
diff --git a/content/browser/renderer_host/web_input_event_aura.cc b/content/browser/renderer_host/web_input_event_aura.cc
index a395fed..f9bd2ba 100644
--- a/content/browser/renderer_host/web_input_event_aura.cc
+++ b/content/browser/renderer_host/web_input_event_aura.cc
@@ -30,6 +30,8 @@ WebKit::WebKeyboardEvent MakeWebKeyboardEventFromAuraEvent(
aura::KeyEvent* event);
WebKit::WebGestureEvent MakeWebGestureEventFromAuraEvent(
aura::GestureEvent* event);
+WebKit::WebGestureEvent MakeWebGestureEventFromAuraEvent(
+ aura::ScrollEvent* event);
WebKit::WebTouchPoint* UpdateWebTouchEventFromAuraEvent(
aura::TouchEvent* event, WebKit::WebTouchEvent* web_event);
#endif
@@ -155,6 +157,25 @@ WebKit::WebGestureEvent MakeWebGestureEvent(aura::GestureEvent* event) {
return gesture_event;
}
+WebKit::WebGestureEvent MakeWebGestureEvent(aura::ScrollEvent* event) {
+ WebKit::WebGestureEvent gesture_event;
+
+#if defined(OS_WIN)
+ gesture_event = MakeWebGestureEventFromNativeEvent(event->native_event());
+#else
+ gesture_event = MakeWebGestureEventFromAuraEvent(event);
+#endif
+
+ gesture_event.x = event->x();
+ gesture_event.y = event->y();
+
+ const gfx::Point root_point = event->root_location();
+ gesture_event.globalX = root_point.x();
+ gesture_event.globalY = root_point.y();
+
+ return gesture_event;
+}
+
WebKit::WebTouchPoint* UpdateWebTouchEvent(aura::TouchEvent* event,
WebKit::WebTouchEvent* web_event) {
#if defined(OS_WIN)
diff --git a/content/browser/renderer_host/web_input_event_aura.h b/content/browser/renderer_host/web_input_event_aura.h
index 40599ea..839c51d 100644
--- a/content/browser/renderer_host/web_input_event_aura.h
+++ b/content/browser/renderer_host/web_input_event_aura.h
@@ -23,6 +23,7 @@ WebKit::WebMouseWheelEvent MakeWebMouseWheelEvent(aura::MouseEvent* event);
WebKit::WebMouseWheelEvent MakeWebMouseWheelEvent(aura::ScrollEvent* event);
WebKit::WebKeyboardEvent MakeWebKeyboardEvent(aura::KeyEvent* event);
WebKit::WebGestureEvent MakeWebGestureEvent(aura::GestureEvent* event);
+WebKit::WebGestureEvent MakeWebGestureEvent(aura::ScrollEvent* event);
// Updates the WebTouchEvent based on the TouchEvent. It returns the updated
// WebTouchPoint contained in the WebTouchEvent, or NULL if no point was
diff --git a/content/browser/renderer_host/web_input_event_aurax11.cc b/content/browser/renderer_host/web_input_event_aurax11.cc
index 0729c28..63af7c8 100644
--- a/content/browser/renderer_host/web_input_event_aurax11.cc
+++ b/content/browser/renderer_host/web_input_event_aurax11.cc
@@ -250,6 +250,32 @@ WebKit::WebMouseWheelEvent MakeWebMouseWheelEventFromAuraEvent(
return webkit_event;
}
+WebKit::WebGestureEvent MakeWebGestureEventFromAuraEvent(
+ aura::ScrollEvent* event) {
+ WebKit::WebGestureEvent webkit_event;
+
+ switch (event->type()) {
+ case ui::ET_SCROLL:
+ webkit_event.type = WebKit::WebInputEvent::GestureScrollUpdate;
+ break;
+ case ui::ET_SCROLL_FLING_START:
+ webkit_event.type = WebKit::WebInputEvent::GestureFlingStart;
+ break;
+ case ui::ET_SCROLL_FLING_CANCEL:
+ webkit_event.type = WebKit::WebInputEvent::GestureFlingCancel;
+ break;
+ default:
+ NOTREACHED() << "Unknown gesture type: " << event->type();
+ }
+
+ webkit_event.modifiers = EventFlagsToWebEventModifiers(event->flags());
+ webkit_event.timeStampSeconds = event->time_stamp().InSecondsF();
+ webkit_event.deltaX = event->x_offset();
+ webkit_event.deltaY = event->y_offset();
+
+ return webkit_event;
+}
+
WebKit::WebKeyboardEvent MakeWebKeyboardEventFromAuraEvent(
aura::KeyEvent* event) {
base::NativeEvent native_event = event->native_event();