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

Unified Diff: ui/events/mojo/event_struct_traits.cc

Issue 2301593002: Add POINTER_WHEEL_CHANGED event to mojo. (Closed)
Patch Set: rebase Created 4 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
« no previous file with comments | « ui/events/mojo/event_constants.mojom ('k') | ui/events/mojo/struct_traits_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/events/mojo/event_struct_traits.cc
diff --git a/ui/events/mojo/event_struct_traits.cc b/ui/events/mojo/event_struct_traits.cc
index 7c39621434cec967eb838632ec5a40db05090f39..f57359b67b4391ede9f99f182e432fdd25928c8f 100644
--- a/ui/events/mojo/event_struct_traits.cc
+++ b/ui/events/mojo/event_struct_traits.cc
@@ -23,15 +23,15 @@ ui::mojom::EventType UIEventTypeToMojo(ui::EventType type) {
case ui::ET_POINTER_EXITED:
return ui::mojom::EventType::MOUSE_EXIT;
- case ui::ET_MOUSEWHEEL:
- return ui::mojom::EventType::WHEEL;
-
case ui::ET_POINTER_UP:
return ui::mojom::EventType::POINTER_UP;
case ui::ET_POINTER_CANCELLED:
return ui::mojom::EventType::POINTER_CANCEL;
+ case ui::ET_POINTER_WHEEL_CHANGED:
+ return ui::mojom::EventType::POINTER_WHEEL_CHANGED;
+
case ui::ET_KEY_PRESSED:
return ui::mojom::EventType::KEY_PRESSED;
@@ -61,6 +61,9 @@ ui::EventType MojoPointerEventTypeToUIEvent(ui::mojom::EventType action) {
case ui::mojom::EventType::MOUSE_EXIT:
return ui::ET_POINTER_EXITED;
+ case ui::mojom::EventType::POINTER_WHEEL_CHANGED:
+ return ui::ET_POINTER_WHEEL_CHANGED;
+
default:
NOTREACHED();
}
@@ -158,22 +161,14 @@ StructTraits<ui::mojom::EventDataView, EventUniquePtr>::key_data(
ui::mojom::PointerDataPtr
StructTraits<ui::mojom::EventDataView, EventUniquePtr>::pointer_data(
const EventUniquePtr& event) {
- if (!event->IsPointerEvent() && !event->IsMouseWheelEvent())
+ if (!event->IsPointerEvent())
return nullptr;
+ const ui::PointerEvent* pointer_event = event->AsPointerEvent();
ui::mojom::PointerDataPtr pointer_data(ui::mojom::PointerData::New());
-
- const ui::PointerDetails* pointer_details = nullptr;
- if (event->IsPointerEvent()) {
- const ui::PointerEvent* pointer_event = event->AsPointerEvent();
- pointer_data->pointer_id = pointer_event->pointer_id();
- pointer_data->changed_button_flags = pointer_event->changed_button_flags();
- pointer_details = &pointer_event->pointer_details();
- } else {
- const ui::MouseWheelEvent* wheel_event = event->AsMouseWheelEvent();
- pointer_data->pointer_id = ui::PointerEvent::kMousePointerId;
- pointer_details = &wheel_event->pointer_details();
- }
+ pointer_data->pointer_id = pointer_event->pointer_id();
+ pointer_data->changed_button_flags = pointer_event->changed_button_flags();
+ const ui::PointerDetails* pointer_details = &pointer_event->pointer_details();
switch (pointer_details->pointer_type) {
case ui::EventPointerType::POINTER_TYPE_MOUSE:
@@ -208,9 +203,7 @@ StructTraits<ui::mojom::EventDataView, EventUniquePtr>::pointer_data(
location_data->screen_y = located_event->root_location_f().y();
pointer_data->location = std::move(location_data);
- if (event->IsMouseWheelEvent()) {
- const ui::MouseWheelEvent* wheel_event = event->AsMouseWheelEvent();
-
+ if (event->type() == ui::ET_POINTER_WHEEL_CHANGED) {
ui::mojom::WheelDataPtr wheel_data(ui::mojom::WheelData::New());
// TODO(rjkroege): Support page scrolling on windows by directly
@@ -219,14 +212,14 @@ StructTraits<ui::mojom::EventDataView, EventUniquePtr>::pointer_data(
// TODO(rjkroege): Support precise scrolling deltas.
if ((event->flags() & ui::EF_SHIFT_DOWN) != 0 &&
- wheel_event->x_offset() == 0) {
- wheel_data->delta_x = wheel_event->y_offset();
+ pointer_details->offset.x() == 0) {
+ wheel_data->delta_x = pointer_details->offset.y();
wheel_data->delta_y = 0;
wheel_data->delta_z = 0;
} else {
// TODO(rjkroege): support z in ui::Events.
- wheel_data->delta_x = wheel_event->x_offset();
- wheel_data->delta_y = wheel_event->y_offset();
+ wheel_data->delta_x = pointer_details->offset.x();
+ wheel_data->delta_y = pointer_details->offset.y();
wheel_data->delta_z = 0;
}
pointer_data->wheel_data = std::move(wheel_data);
@@ -264,7 +257,7 @@ bool StructTraits<ui::mojom::EventDataView, EventUniquePtr>::Read(
case ui::mojom::EventType::POINTER_MOVE:
case ui::mojom::EventType::POINTER_CANCEL:
case ui::mojom::EventType::MOUSE_EXIT:
- case ui::mojom::EventType::WHEEL: {
+ case ui::mojom::EventType::POINTER_WHEEL_CHANGED: {
ui::mojom::PointerDataPtr pointer_data;
if (!event.ReadPointerData<ui::mojom::PointerDataPtr>(&pointer_data))
return false;
@@ -276,20 +269,19 @@ bool StructTraits<ui::mojom::EventDataView, EventUniquePtr>::Read(
switch (pointer_data->kind) {
case ui::mojom::PointerKind::MOUSE: {
- if (event.action() == ui::mojom::EventType::WHEEL) {
- out->reset(new ui::MouseWheelEvent(
- gfx::Vector2d(
- static_cast<int>(pointer_data->wheel_data->delta_x),
- static_cast<int>(pointer_data->wheel_data->delta_y)),
- location, screen_location, ui::EventTimeForNow(),
- ui::EventFlags(event.flags()), ui::EventFlags(event.flags())));
- return true;
- }
out->reset(new ui::PointerEvent(
MojoPointerEventTypeToUIEvent(event.action()), location,
screen_location, event.flags(), ui::PointerEvent::kMousePointerId,
pointer_data->changed_button_flags,
- ui::PointerDetails(ui::EventPointerType::POINTER_TYPE_MOUSE),
+ event.action() == ui::mojom::EventType::POINTER_WHEEL_CHANGED
+ ? ui::PointerDetails(
+ ui::EventPointerType::POINTER_TYPE_MOUSE,
+ gfx::Vector2d(
+ static_cast<int>(pointer_data->wheel_data->delta_x),
+ static_cast<int>(
+ pointer_data->wheel_data->delta_y)))
+ : ui::PointerDetails(
+ ui::EventPointerType::POINTER_TYPE_MOUSE),
ui::EventTimeForNow()));
return true;
}
« no previous file with comments | « ui/events/mojo/event_constants.mojom ('k') | ui/events/mojo/struct_traits_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698