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..28c9c4b07c8b6e548edea9a20f6aee2f7a6d8b29 100644 |
--- a/components/html_viewer/blink_input_events_type_converters.cc |
+++ b/components/html_viewer/blink_input_events_type_converters.cc |
@@ -147,19 +147,39 @@ 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; |
- } |
+ web_event->deltaX = event->pointer_data->wheel_data->delta_x; |
+ web_event->deltaY = event->pointer_data->wheel_data->delta_y; |
+ // TODO(rjkroege): Add wheel event support when blink does. |
sadrul
2015/09/09 04:19:04
not sure what the TODO here means ... blink alread
rjkroege
2015/09/09 19:45:38
Per rbyers: it supports the legacy non-standard wh
|
- // 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 +193,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) |