Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(717)

Unified Diff: ui/events/ozone/events_ozone.cc

Issue 566673003: ozone: events: Centralize & document our NativeEvent woes (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698