| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "ui/events/event.h" | 5 #include "ui/events/event.h" |
| 6 | 6 |
| 7 #if defined(USE_X11) | 7 #if defined(USE_X11) |
| 8 #include <X11/extensions/XInput2.h> | 8 #include <X11/extensions/XInput2.h> |
| 9 #include <X11/Xlib.h> | 9 #include <X11/Xlib.h> |
| 10 #include <X11/keysym.h> | 10 #include <X11/keysym.h> |
| 11 #endif | 11 #endif |
| 12 | 12 |
| 13 #include <cmath> | 13 #include <cmath> |
| 14 #include <cstring> | 14 #include <cstring> |
| 15 | 15 |
| 16 #include "base/metrics/histogram.h" | 16 #include "base/metrics/histogram.h" |
| 17 #include "base/strings/stringprintf.h" | 17 #include "base/strings/stringprintf.h" |
| 18 #include "ui/events/event_utils.h" | 18 #include "ui/events/event_utils.h" |
| 19 #include "ui/events/keycodes/keyboard_code_conversion.h" | 19 #include "ui/events/keycodes/keyboard_code_conversion.h" |
| 20 #include "ui/gfx/geometry/safe_integer_conversions.h" |
| 20 #include "ui/gfx/point3_f.h" | 21 #include "ui/gfx/point3_f.h" |
| 21 #include "ui/gfx/point_conversions.h" | 22 #include "ui/gfx/point_conversions.h" |
| 22 #include "ui/gfx/transform.h" | 23 #include "ui/gfx/transform.h" |
| 23 #include "ui/gfx/transform_util.h" | 24 #include "ui/gfx/transform_util.h" |
| 24 | 25 |
| 25 #if defined(USE_X11) | 26 #if defined(USE_X11) |
| 26 #include "ui/events/keycodes/keyboard_code_conversion_x.h" | 27 #include "ui/events/keycodes/keyboard_code_conversion_x.h" |
| 27 #elif defined(USE_OZONE) | 28 #elif defined(USE_OZONE) |
| 28 #include "ui/events/keycodes/keyboard_code_conversion.h" | 29 #include "ui/events/keycodes/keyboard_code_conversion.h" |
| 29 #endif | 30 #endif |
| (...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 207 native_event_(native_event), | 208 native_event_(native_event), |
| 208 delete_native_event_(false), | 209 delete_native_event_(false), |
| 209 cancelable_(true), | 210 cancelable_(true), |
| 210 target_(NULL), | 211 target_(NULL), |
| 211 phase_(EP_PREDISPATCH), | 212 phase_(EP_PREDISPATCH), |
| 212 result_(ER_UNHANDLED), | 213 result_(ER_UNHANDLED), |
| 213 source_device_id_(ED_UNKNOWN_DEVICE) { | 214 source_device_id_(ED_UNKNOWN_DEVICE) { |
| 214 base::TimeDelta delta = EventTimeForNow() - time_stamp_; | 215 base::TimeDelta delta = EventTimeForNow() - time_stamp_; |
| 215 if (type_ < ET_LAST) | 216 if (type_ < ET_LAST) |
| 216 name_ = EventTypeName(type_); | 217 name_ = EventTypeName(type_); |
| 217 UMA_HISTOGRAM_CUSTOM_COUNTS("Event.Latency.Browser", | 218 base::HistogramBase::Sample delta_sample = |
| 218 delta.InMicroseconds(), 1, 1000000, 100); | 219 static_cast<base::HistogramBase::Sample>(delta.InMicroseconds()); |
| 220 UMA_HISTOGRAM_CUSTOM_COUNTS("Event.Latency.Browser", delta_sample, 1, 1000000, |
| 221 100); |
| 219 std::string name_for_event = | 222 std::string name_for_event = |
| 220 base::StringPrintf("Event.Latency.Browser.%s", name_.c_str()); | 223 base::StringPrintf("Event.Latency.Browser.%s", name_.c_str()); |
| 221 base::HistogramBase* counter_for_type = | 224 base::HistogramBase* counter_for_type = |
| 222 base::Histogram::FactoryGet( | 225 base::Histogram::FactoryGet( |
| 223 name_for_event, | 226 name_for_event, |
| 224 1, | 227 1, |
| 225 1000000, | 228 1000000, |
| 226 100, | 229 100, |
| 227 base::HistogramBase::kUmaTargetedHistogramFlag); | 230 base::HistogramBase::kUmaTargetedHistogramFlag); |
| 228 counter_for_type->Add(delta.InMicroseconds()); | 231 counter_for_type->Add(delta_sample); |
| 229 | 232 |
| 230 #if defined(USE_X11) | 233 #if defined(USE_X11) |
| 231 if (native_event->type == GenericEvent) { | 234 if (native_event->type == GenericEvent) { |
| 232 XIDeviceEvent* xiev = | 235 XIDeviceEvent* xiev = |
| 233 static_cast<XIDeviceEvent*>(native_event->xcookie.data); | 236 static_cast<XIDeviceEvent*>(native_event->xcookie.data); |
| 234 source_device_id_ = xiev->sourceid; | 237 source_device_id_ = xiev->sourceid; |
| 235 } | 238 } |
| 236 #endif | 239 #endif |
| 237 } | 240 } |
| 238 | 241 |
| (...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 443 //////////////////////////////////////////////////////////////////////////////// | 446 //////////////////////////////////////////////////////////////////////////////// |
| 444 // MouseWheelEvent | 447 // MouseWheelEvent |
| 445 | 448 |
| 446 MouseWheelEvent::MouseWheelEvent(const base::NativeEvent& native_event) | 449 MouseWheelEvent::MouseWheelEvent(const base::NativeEvent& native_event) |
| 447 : MouseEvent(native_event), | 450 : MouseEvent(native_event), |
| 448 offset_(GetMouseWheelOffset(native_event)) { | 451 offset_(GetMouseWheelOffset(native_event)) { |
| 449 } | 452 } |
| 450 | 453 |
| 451 MouseWheelEvent::MouseWheelEvent(const ScrollEvent& scroll_event) | 454 MouseWheelEvent::MouseWheelEvent(const ScrollEvent& scroll_event) |
| 452 : MouseEvent(scroll_event), | 455 : MouseEvent(scroll_event), |
| 453 offset_(scroll_event.x_offset(), scroll_event.y_offset()){ | 456 offset_(gfx::ToRoundedInt(scroll_event.x_offset()), |
| 457 gfx::ToRoundedInt(scroll_event.y_offset())) { |
| 454 SetType(ET_MOUSEWHEEL); | 458 SetType(ET_MOUSEWHEEL); |
| 455 } | 459 } |
| 456 | 460 |
| 457 MouseWheelEvent::MouseWheelEvent(const MouseEvent& mouse_event, | 461 MouseWheelEvent::MouseWheelEvent(const MouseEvent& mouse_event, |
| 458 int x_offset, | 462 int x_offset, |
| 459 int y_offset) | 463 int y_offset) |
| 460 : MouseEvent(mouse_event), offset_(x_offset, y_offset) { | 464 : MouseEvent(mouse_event), offset_(x_offset, y_offset) { |
| 461 DCHECK(type() == ET_MOUSEWHEEL); | 465 DCHECK(type() == ET_MOUSEWHEEL); |
| 462 } | 466 } |
| 463 | 467 |
| (...skipping 21 matching lines...) Expand all Loading... |
| 485 // This value matches GTK+ wheel scroll amount. | 489 // This value matches GTK+ wheel scroll amount. |
| 486 const int MouseWheelEvent::kWheelDelta = 53; | 490 const int MouseWheelEvent::kWheelDelta = 53; |
| 487 #endif | 491 #endif |
| 488 | 492 |
| 489 void MouseWheelEvent::UpdateForRootTransform( | 493 void MouseWheelEvent::UpdateForRootTransform( |
| 490 const gfx::Transform& inverted_root_transform) { | 494 const gfx::Transform& inverted_root_transform) { |
| 491 LocatedEvent::UpdateForRootTransform(inverted_root_transform); | 495 LocatedEvent::UpdateForRootTransform(inverted_root_transform); |
| 492 gfx::DecomposedTransform decomp; | 496 gfx::DecomposedTransform decomp; |
| 493 bool success = gfx::DecomposeTransform(&decomp, inverted_root_transform); | 497 bool success = gfx::DecomposeTransform(&decomp, inverted_root_transform); |
| 494 DCHECK(success); | 498 DCHECK(success); |
| 495 if (decomp.scale[0]) | 499 if (decomp.scale[0]) { |
| 496 offset_.set_x(offset_.x() * decomp.scale[0]); | 500 offset_.set_x( |
| 497 if (decomp.scale[1]) | 501 gfx::ToRoundedInt(SkMScalarToFloat(offset_.x() * decomp.scale[0]))); |
| 498 offset_.set_y(offset_.y() * decomp.scale[1]); | 502 } |
| 503 if (decomp.scale[1]) { |
| 504 offset_.set_y( |
| 505 gfx::ToRoundedInt(SkMScalarToFloat(offset_.y() * decomp.scale[1]))); |
| 506 } |
| 499 } | 507 } |
| 500 | 508 |
| 501 //////////////////////////////////////////////////////////////////////////////// | 509 //////////////////////////////////////////////////////////////////////////////// |
| 502 // TouchEvent | 510 // TouchEvent |
| 503 | 511 |
| 504 TouchEvent::TouchEvent(const base::NativeEvent& native_event) | 512 TouchEvent::TouchEvent(const base::NativeEvent& native_event) |
| 505 : LocatedEvent(native_event), | 513 : LocatedEvent(native_event), |
| 506 touch_id_(GetTouchId(native_event)), | 514 touch_id_(GetTouchId(native_event)), |
| 507 radius_x_(GetTouchRadiusX(native_event)), | 515 radius_x_(GetTouchRadiusX(native_event)), |
| 508 radius_y_(GetTouchRadiusY(native_event)), | 516 radius_y_(GetTouchRadiusY(native_event)), |
| (...skipping 452 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 961 gfx::PointF(x, y), | 969 gfx::PointF(x, y), |
| 962 time_stamp, | 970 time_stamp, |
| 963 flags | EF_FROM_TOUCH), | 971 flags | EF_FROM_TOUCH), |
| 964 details_(details) { | 972 details_(details) { |
| 965 } | 973 } |
| 966 | 974 |
| 967 GestureEvent::~GestureEvent() { | 975 GestureEvent::~GestureEvent() { |
| 968 } | 976 } |
| 969 | 977 |
| 970 } // namespace ui | 978 } // namespace ui |
| OLD | NEW |