| Index: components/html_viewer/blink_input_events_type_converters.cc
|
| diff --git a/components/html_viewer/blink_input_events_type_converters.cc b/components/html_viewer/blink_input_events_type_converters.cc
|
| index 0e8b1d67fbf74861e3b229ed23447b59591195d4..50e7dae1913fcdbf9e3dc32419757bab23c80424 100644
|
| --- a/components/html_viewer/blink_input_events_type_converters.cc
|
| +++ b/components/html_viewer/blink_input_events_type_converters.cc
|
| @@ -147,19 +147,41 @@ scoped_ptr<blink::WebInputEvent> BuildWebMouseWheelEventFrom(
|
|
|
| SetWebMouseEventLocation(*(event->pointer_data), web_event.get());
|
|
|
| - if ((event->flags & mojo::EVENT_FLAGS_SHIFT_DOWN) != 0 &&
|
| - event->pointer_data->horizontal_wheel == 0) {
|
| - web_event->deltaX = event->pointer_data->horizontal_wheel;
|
| - web_event->deltaY = 0;
|
| - } else {
|
| - web_event->deltaX = event->pointer_data->horizontal_wheel;
|
| - web_event->deltaY = event->pointer_data->vertical_wheel;
|
| - }
|
| + // TODO(rjkroege): Update the following code once Blink supports
|
| + // DOM Level 3 wheel events
|
| + // (http://www.w3.org/TR/DOM-Level-3-Events/#events-wheelevents)
|
| + web_event->deltaX = event->pointer_data->wheel_data->delta_x;
|
| + web_event->deltaY = event->pointer_data->wheel_data->delta_y;
|
|
|
| - // TODO(sky): resole this, doesn't work for desktop.
|
| web_event->wheelTicksX = web_event->deltaX / kPixelsPerTick;
|
| web_event->wheelTicksY = web_event->deltaY / kPixelsPerTick;
|
|
|
| + // TODO(rjkroege): Mandoline currently only generates WHEEL_MODE_LINE
|
| + // wheel events so the other modes are not yet tested. Verify that
|
| + // the implementation is correct.
|
| + switch (event->pointer_data->wheel_data->mode) {
|
| + case mojo::WHEEL_MODE_PIXEL:
|
| + web_event->hasPreciseScrollingDeltas = true;
|
| + web_event->scrollByPage = false;
|
| + web_event->canScroll = true;
|
| + break;
|
| + case mojo::WHEEL_MODE_LINE:
|
| + web_event->hasPreciseScrollingDeltas = false;
|
| + web_event->scrollByPage = false;
|
| + web_event->canScroll = true;
|
| + break;
|
| + case mojo::WHEEL_MODE_PAGE:
|
| + web_event->hasPreciseScrollingDeltas = false;
|
| + web_event->scrollByPage = true;
|
| + web_event->canScroll = true;
|
| + break;
|
| + case mojo::WHEEL_MODE_SCALING:
|
| + web_event->hasPreciseScrollingDeltas = false;
|
| + web_event->scrollByPage = false;
|
| + web_event->canScroll = false;
|
| + break;
|
| + }
|
| +
|
| return web_event.Pass();
|
| }
|
|
|
| @@ -173,8 +195,7 @@ TypeConverter<scoped_ptr<blink::WebInputEvent>, EventPtr>::Convert(
|
| event->action == mojo::EVENT_TYPE_POINTER_UP ||
|
| event->action == mojo::EVENT_TYPE_POINTER_CANCEL ||
|
| event->action == mojo::EVENT_TYPE_POINTER_MOVE) {
|
| - if (event->pointer_data->horizontal_wheel != 0 ||
|
| - event->pointer_data->vertical_wheel != 0) {
|
| + if (event->pointer_data->kind == mojo::POINTER_KIND_WHEEL) {
|
| return BuildWebMouseWheelEventFrom(event);
|
| }
|
| if (event->pointer_data->kind == mojo::POINTER_KIND_MOUSE)
|
|
|