| Index: ui/events/ozone/events_ozone.cc
|
| diff --git a/ui/events/ozone/events_ozone.cc b/ui/events/ozone/events_ozone.cc
|
| index 57892532c32374e24be8d1b0f3d256ad92ce3516..fb0d1427bd3812547ae6ef7f6372b00d744e7dbf 100644
|
| --- a/ui/events/ozone/events_ozone.cc
|
| +++ b/ui/events/ozone/events_ozone.cc
|
| @@ -2,6 +2,8 @@
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| +#include "ui/events/ozone/events_ozone.h"
|
| +
|
| #include "ui/events/event.h"
|
| #include "ui/events/event_constants.h"
|
| #include "ui/events/event_utils.h"
|
| @@ -146,8 +148,21 @@ bool GetScrollOffsets(const base::NativeEvent& native_event,
|
| float* x_offset_ordinal,
|
| float* y_offset_ordinal,
|
| int* finger_count) {
|
| - NOTIMPLEMENTED();
|
| - return false;
|
| + const ui::ScrollEvent* event =
|
| + static_cast<const ui::ScrollEvent*>(native_event);
|
| + DCHECK(event->IsScrollEvent());
|
| + if (x_offset)
|
| + *x_offset = event->x_offset();
|
| + if (y_offset)
|
| + *y_offset = event->y_offset();
|
| + if (x_offset_ordinal)
|
| + *x_offset_ordinal = event->x_offset_ordinal();
|
| + if (y_offset_ordinal)
|
| + *y_offset_ordinal = event->y_offset_ordinal();
|
| + if (finger_count)
|
| + *finger_count = event->finger_count();
|
| +
|
| + return true;
|
| }
|
|
|
| bool GetFlingData(const base::NativeEvent& native_event,
|
| @@ -178,4 +193,24 @@ int GetModifiersFromKeyState() {
|
| return 0;
|
| }
|
|
|
| +void DispatchEventFromNativeUiEvent(const base::NativeEvent& native_event,
|
| + base::Callback<void(ui::Event*)> callback) {
|
| + const ui::Event* native_ui_event = static_cast<ui::Event*>(native_event);
|
| + if (native_ui_event->IsKeyEvent()) {
|
| + ui::KeyEvent key_event(native_event);
|
| + callback.Run(&key_event);
|
| + } else if (native_ui_event->IsMouseEvent()) {
|
| + ui::MouseEvent mouse_event(native_event);
|
| + callback.Run(&mouse_event);
|
| + } else if (native_ui_event->IsTouchEvent()) {
|
| + ui::TouchEvent touch_event(native_event);
|
| + callback.Run(&touch_event);
|
| + } else if (native_ui_event->IsScrollEvent()) {
|
| + ui::ScrollEvent scroll_event(native_event);
|
| + callback.Run(&scroll_event);
|
| + } else {
|
| + NOTREACHED();
|
| + }
|
| +}
|
| +
|
| } // namespace ui
|
|
|