From 7ded81cc4fc8c269666f5d312c8a0df99c0eb713 Mon Sep 17 00:00:00 2001 From: Adam Barth Date: Mon, 26 Jan 2015 13:29:38 -0800 Subject: [PATCH] Add a basic sky-scrollable element that scrolls We still need to polish sky-scrollable, but it basically works. R=esprehn@chromium.org Review URL: https://codereview.chromium.org/875953004 --- examples/example-scrollable.sky | 42 ++++++++++ framework/sky-scrollable.sky | 101 +++++++++++++++++++++++++ viewer/converters/input_event_types.cc | 15 ++-- 3 files changed, 153 insertions(+), 5 deletions(-) create mode 100644 examples/example-scrollable.sky create mode 100644 framework/sky-scrollable.sky diff --git a/examples/example-scrollable.sky b/examples/example-scrollable.sky new file mode 100644 index 00000000000..e57934d2f4b --- /dev/null +++ b/examples/example-scrollable.sky @@ -0,0 +1,42 @@ + + + + + + + + + + + + + diff --git a/framework/sky-scrollable.sky b/framework/sky-scrollable.sky new file mode 100644 index 00000000000..f950c8b470a --- /dev/null +++ b/framework/sky-scrollable.sky @@ -0,0 +1,101 @@ + + + + + + + diff --git a/viewer/converters/input_event_types.cc b/viewer/converters/input_event_types.cc index ae3d1bcd9e7..987cd122a22 100644 --- a/viewer/converters/input_event_types.cc +++ b/viewer/converters/input_event_types.cc @@ -101,13 +101,17 @@ scoped_ptr BuildWebGestureEvent( break; case mojo::EVENT_TYPE_GESTURE_SCROLL_UPDATE: web_event->type = blink::WebInputEvent::GestureScrollUpdate; - web_event->data.scrollUpdate.deltaX = event->gesture_data->scroll_x; - web_event->data.scrollUpdate.deltaY = event->gesture_data->scroll_y; + web_event->data.scrollUpdate.deltaX = + event->gesture_data->scroll_x / device_pixel_ratio; + web_event->data.scrollUpdate.deltaY = + event->gesture_data->scroll_y / device_pixel_ratio; break; case mojo::EVENT_TYPE_SCROLL_FLING_START: web_event->type = blink::WebInputEvent::GestureFlingStart; - web_event->data.flingStart.velocityX = event->gesture_data->velocity_x; - web_event->data.flingStart.velocityY = event->gesture_data->velocity_y; + web_event->data.flingStart.velocityX = + event->gesture_data->velocity_x / device_pixel_ratio; + web_event->data.flingStart.velocityY = + event->gesture_data->velocity_y / device_pixel_ratio; break; case mojo::EVENT_TYPE_SCROLL_FLING_CANCEL: web_event->type = blink::WebInputEvent::GestureFlingCancel; @@ -150,7 +154,8 @@ scoped_ptr BuildWebGestureEvent( break; case mojo::EVENT_TYPE_GESTURE_PINCH_UPDATE: web_event->type = blink::WebInputEvent::GesturePinchUpdate; - web_event->data.pinchUpdate.scale = event->gesture_data->scale; + web_event->data.pinchUpdate.scale = + event->gesture_data->scale / device_pixel_ratio; break; default: NOTIMPLEMENTED() << "Received unexpected event: " << event->action;