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/keysym.h> | 9 #include <X11/keysym.h> |
10 #include <X11/Xlib.h> | 10 #include <X11/Xlib.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/base_event_utils.h" |
18 #include "ui/events/event_utils.h" | 19 #include "ui/events/event_utils.h" |
19 #include "ui/events/keycodes/dom3/dom_code.h" | 20 #include "ui/events/keycodes/dom3/dom_code.h" |
20 #include "ui/events/keycodes/dom3/dom_key.h" | 21 #include "ui/events/keycodes/dom3/dom_key.h" |
21 #include "ui/events/keycodes/dom4/keycode_converter.h" | 22 #include "ui/events/keycodes/dom4/keycode_converter.h" |
22 #include "ui/events/keycodes/keyboard_code_conversion.h" | 23 #include "ui/events/keycodes/keyboard_code_conversion.h" |
23 #include "ui/gfx/geometry/point3_f.h" | 24 #include "ui/gfx/geometry/point3_f.h" |
24 #include "ui/gfx/geometry/point_conversions.h" | 25 #include "ui/gfx/geometry/point_conversions.h" |
25 #include "ui/gfx/geometry/safe_integer_conversions.h" | 26 #include "ui/gfx/geometry/safe_integer_conversions.h" |
26 #include "ui/gfx/transform.h" | 27 #include "ui/gfx/transform.h" |
27 #include "ui/gfx/transform_util.h" | 28 #include "ui/gfx/transform_util.h" |
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
103 const unsigned int kAllStateMask = | 104 const unsigned int kAllStateMask = |
104 Button1Mask | Button2Mask | Button3Mask | Button4Mask | Button5Mask | | 105 Button1Mask | Button2Mask | Button3Mask | Button4Mask | Button5Mask | |
105 Mod1Mask | Mod2Mask | Mod3Mask | Mod4Mask | Mod5Mask | ShiftMask | | 106 Mod1Mask | Mod2Mask | Mod3Mask | Mod4Mask | Mod5Mask | ShiftMask | |
106 LockMask | ControlMask | AnyModifier; | 107 LockMask | ControlMask | AnyModifier; |
107 return event && (event->xkey.state & ~kAllStateMask) != 0; | 108 return event && (event->xkey.state & ~kAllStateMask) != 0; |
108 #else | 109 #else |
109 return false; | 110 return false; |
110 #endif | 111 #endif |
111 } | 112 } |
112 | 113 |
113 unsigned long long get_next_touch_event_id() { | |
114 static unsigned long long id = 0; | |
115 return id++; | |
116 } | |
117 | |
118 } // namespace | 114 } // namespace |
119 | 115 |
120 namespace ui { | 116 namespace ui { |
121 | 117 |
122 //////////////////////////////////////////////////////////////////////////////// | 118 //////////////////////////////////////////////////////////////////////////////// |
123 // Event | 119 // Event |
124 | 120 |
125 // static | 121 // static |
126 scoped_ptr<Event> Event::Clone(const Event& event) { | 122 scoped_ptr<Event> Event::Clone(const Event& event) { |
127 if (event.IsKeyEvent()) { | 123 if (event.IsKeyEvent()) { |
(...skipping 380 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
508 // This value matches GTK+ wheel scroll amount. | 504 // This value matches GTK+ wheel scroll amount. |
509 const int MouseWheelEvent::kWheelDelta = 53; | 505 const int MouseWheelEvent::kWheelDelta = 53; |
510 #endif | 506 #endif |
511 | 507 |
512 //////////////////////////////////////////////////////////////////////////////// | 508 //////////////////////////////////////////////////////////////////////////////// |
513 // TouchEvent | 509 // TouchEvent |
514 | 510 |
515 TouchEvent::TouchEvent(const base::NativeEvent& native_event) | 511 TouchEvent::TouchEvent(const base::NativeEvent& native_event) |
516 : LocatedEvent(native_event), | 512 : LocatedEvent(native_event), |
517 touch_id_(GetTouchId(native_event)), | 513 touch_id_(GetTouchId(native_event)), |
518 unique_event_id_(get_next_touch_event_id()), | 514 unique_event_id_(ui::GetNextTouchEventId()), |
519 radius_x_(GetTouchRadiusX(native_event)), | 515 radius_x_(GetTouchRadiusX(native_event)), |
520 radius_y_(GetTouchRadiusY(native_event)), | 516 radius_y_(GetTouchRadiusY(native_event)), |
521 rotation_angle_(GetTouchAngle(native_event)), | 517 rotation_angle_(GetTouchAngle(native_event)), |
522 force_(GetTouchForce(native_event)), | 518 force_(GetTouchForce(native_event)), |
523 may_cause_scrolling_(false), | 519 may_cause_scrolling_(false), |
524 should_remove_native_touch_id_mapping_(false) { | 520 should_remove_native_touch_id_mapping_(false) { |
525 latency()->AddLatencyNumberWithTimestamp( | 521 latency()->AddLatencyNumberWithTimestamp( |
526 INPUT_EVENT_LATENCY_ORIGINAL_COMPONENT, 0, 0, | 522 INPUT_EVENT_LATENCY_ORIGINAL_COMPONENT, 0, 0, |
527 base::TimeTicks::FromInternalValue(time_stamp().ToInternalValue()), 1); | 523 base::TimeTicks::FromInternalValue(time_stamp().ToInternalValue()), 1); |
528 latency()->AddLatencyNumber(INPUT_EVENT_LATENCY_UI_COMPONENT, 0, 0); | 524 latency()->AddLatencyNumber(INPUT_EVENT_LATENCY_UI_COMPONENT, 0, 0); |
529 | 525 |
530 FixRotationAngle(); | 526 FixRotationAngle(); |
531 if (type() == ET_TOUCH_RELEASED || type() == ET_TOUCH_CANCELLED) | 527 if (type() == ET_TOUCH_RELEASED || type() == ET_TOUCH_CANCELLED) |
532 should_remove_native_touch_id_mapping_ = true; | 528 should_remove_native_touch_id_mapping_ = true; |
533 } | 529 } |
534 | 530 |
535 TouchEvent::TouchEvent(EventType type, | 531 TouchEvent::TouchEvent(EventType type, |
536 const gfx::PointF& location, | 532 const gfx::PointF& location, |
537 int touch_id, | 533 int touch_id, |
538 base::TimeDelta time_stamp) | 534 base::TimeDelta time_stamp) |
539 : LocatedEvent(type, location, location, time_stamp, 0), | 535 : LocatedEvent(type, location, location, time_stamp, 0), |
540 touch_id_(touch_id), | 536 touch_id_(touch_id), |
541 unique_event_id_(get_next_touch_event_id()), | 537 unique_event_id_(ui::GetNextTouchEventId()), |
542 radius_x_(0.0f), | 538 radius_x_(0.0f), |
543 radius_y_(0.0f), | 539 radius_y_(0.0f), |
544 rotation_angle_(0.0f), | 540 rotation_angle_(0.0f), |
545 force_(0.0f), | 541 force_(0.0f), |
546 may_cause_scrolling_(false), | 542 may_cause_scrolling_(false), |
547 should_remove_native_touch_id_mapping_(false) { | 543 should_remove_native_touch_id_mapping_(false) { |
548 latency()->AddLatencyNumber(INPUT_EVENT_LATENCY_UI_COMPONENT, 0, 0); | 544 latency()->AddLatencyNumber(INPUT_EVENT_LATENCY_UI_COMPONENT, 0, 0); |
549 } | 545 } |
550 | 546 |
551 TouchEvent::TouchEvent(EventType type, | 547 TouchEvent::TouchEvent(EventType type, |
552 const gfx::PointF& location, | 548 const gfx::PointF& location, |
553 int flags, | 549 int flags, |
554 int touch_id, | 550 int touch_id, |
555 base::TimeDelta time_stamp, | 551 base::TimeDelta time_stamp, |
556 float radius_x, | 552 float radius_x, |
557 float radius_y, | 553 float radius_y, |
558 float angle, | 554 float angle, |
559 float force) | 555 float force) |
560 : LocatedEvent(type, location, location, time_stamp, flags), | 556 : LocatedEvent(type, location, location, time_stamp, flags), |
561 touch_id_(touch_id), | 557 touch_id_(touch_id), |
562 unique_event_id_(get_next_touch_event_id()), | 558 unique_event_id_(ui::GetNextTouchEventId()), |
563 radius_x_(radius_x), | 559 radius_x_(radius_x), |
564 radius_y_(radius_y), | 560 radius_y_(radius_y), |
565 rotation_angle_(angle), | 561 rotation_angle_(angle), |
566 force_(force), | 562 force_(force), |
567 may_cause_scrolling_(false), | 563 may_cause_scrolling_(false), |
568 should_remove_native_touch_id_mapping_(false) { | 564 should_remove_native_touch_id_mapping_(false) { |
569 latency()->AddLatencyNumber(INPUT_EVENT_LATENCY_UI_COMPONENT, 0, 0); | 565 latency()->AddLatencyNumber(INPUT_EVENT_LATENCY_UI_COMPONENT, 0, 0); |
570 FixRotationAngle(); | 566 FixRotationAngle(); |
571 } | 567 } |
572 | 568 |
(...skipping 432 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1005 gfx::PointF(x, y), | 1001 gfx::PointF(x, y), |
1006 time_stamp, | 1002 time_stamp, |
1007 flags | EF_FROM_TOUCH), | 1003 flags | EF_FROM_TOUCH), |
1008 details_(details) { | 1004 details_(details) { |
1009 } | 1005 } |
1010 | 1006 |
1011 GestureEvent::~GestureEvent() { | 1007 GestureEvent::~GestureEvent() { |
1012 } | 1008 } |
1013 | 1009 |
1014 } // namespace ui | 1010 } // namespace ui |
OLD | NEW |