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

Side by Side Diff: content/browser/renderer_host/ui_events_helper.cc

Issue 510793003: Remove ui::TouchEvent -> blink::WebTouchEvent conversion methods. (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 unified diff | Download patch
OLDNEW
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 "content/browser/renderer_host/ui_events_helper.h" 5 #include "content/browser/renderer_host/ui_events_helper.h"
6 6
7 #include "content/common/input/web_touch_event_traits.h" 7 #include "content/common/input/web_touch_event_traits.h"
8 #include "third_party/WebKit/public/web/WebInputEvent.h" 8 #include "third_party/WebKit/public/web/WebInputEvent.h"
9 #include "ui/events/event.h" 9 #include "ui/events/event.h"
10 #include "ui/events/event_constants.h" 10 #include "ui/events/event_constants.h"
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
49 return ui::ET_TOUCH_MOVED; 49 return ui::ET_TOUCH_MOVED;
50 50
51 case blink::WebTouchPoint::StateCancelled: 51 case blink::WebTouchPoint::StateCancelled:
52 return ui::ET_TOUCH_CANCELLED; 52 return ui::ET_TOUCH_CANCELLED;
53 53
54 default: 54 default:
55 return ui::ET_UNKNOWN; 55 return ui::ET_UNKNOWN;
56 } 56 }
57 } 57 }
58 58
59 blink::WebTouchPoint::State TouchPointStateFromEvent(
60 const ui::TouchEvent& event) {
61 switch (event.type()) {
62 case ui::ET_TOUCH_PRESSED:
63 return blink::WebTouchPoint::StatePressed;
64 case ui::ET_TOUCH_RELEASED:
65 return blink::WebTouchPoint::StateReleased;
66 case ui::ET_TOUCH_MOVED:
67 return blink::WebTouchPoint::StateMoved;
68 case ui::ET_TOUCH_CANCELLED:
69 return blink::WebTouchPoint::StateCancelled;
70 default:
71 return blink::WebTouchPoint::StateUndefined;
72 }
73 }
74
75 blink::WebInputEvent::Type TouchEventTypeFromEvent(
76 const ui::TouchEvent& event) {
77 switch (event.type()) {
78 case ui::ET_TOUCH_PRESSED:
79 return blink::WebInputEvent::TouchStart;
80 case ui::ET_TOUCH_RELEASED:
81 return blink::WebInputEvent::TouchEnd;
82 case ui::ET_TOUCH_MOVED:
83 return blink::WebInputEvent::TouchMove;
84 case ui::ET_TOUCH_CANCELLED:
85 return blink::WebInputEvent::TouchCancel;
86 default:
87 return blink::WebInputEvent::Undefined;
88 }
89 }
90
91 } // namespace 59 } // namespace
92 60
93 namespace content { 61 namespace content {
94 62
95 bool MakeUITouchEventsFromWebTouchEvents( 63 bool MakeUITouchEventsFromWebTouchEvents(
96 const TouchEventWithLatencyInfo& touch_with_latency, 64 const TouchEventWithLatencyInfo& touch_with_latency,
97 ScopedVector<ui::TouchEvent>* list, 65 ScopedVector<ui::TouchEvent>* list,
98 TouchEventCoordinateSystem coordinate_system) { 66 TouchEventCoordinateSystem coordinate_system) {
99 const blink::WebTouchEvent& touch = touch_with_latency.event; 67 const blink::WebTouchEvent& touch = touch_with_latency.event;
100 ui::EventType type = ui::ET_UNKNOWN; 68 ui::EventType type = ui::ET_UNKNOWN;
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after
260 modifiers |= blink::WebInputEvent::MiddleButtonDown; 228 modifiers |= blink::WebInputEvent::MiddleButtonDown;
261 if (flags & ui::EF_RIGHT_MOUSE_BUTTON) 229 if (flags & ui::EF_RIGHT_MOUSE_BUTTON)
262 modifiers |= blink::WebInputEvent::RightButtonDown; 230 modifiers |= blink::WebInputEvent::RightButtonDown;
263 if (flags & ui::EF_CAPS_LOCK_DOWN) 231 if (flags & ui::EF_CAPS_LOCK_DOWN)
264 modifiers |= blink::WebInputEvent::CapsLockOn; 232 modifiers |= blink::WebInputEvent::CapsLockOn;
265 if (flags & ui::EF_IS_REPEAT) 233 if (flags & ui::EF_IS_REPEAT)
266 modifiers |= blink::WebInputEvent::IsAutoRepeat; 234 modifiers |= blink::WebInputEvent::IsAutoRepeat;
267 return modifiers; 235 return modifiers;
268 } 236 }
269 237
270 blink::WebTouchPoint* UpdateWebTouchEventFromUIEvent(
271 const ui::TouchEvent& event,
272 blink::WebTouchEvent* web_event) {
273 blink::WebTouchPoint* point = NULL;
274 switch (event.type()) {
275 case ui::ET_TOUCH_PRESSED:
276 // Add a new touch point.
277 if (web_event->touchesLength < blink::WebTouchEvent::touchesLengthCap) {
278 point = &web_event->touches[web_event->touchesLength++];
279 point->id = event.touch_id();
280 }
281 break;
282 case ui::ET_TOUCH_RELEASED:
283 case ui::ET_TOUCH_CANCELLED:
284 case ui::ET_TOUCH_MOVED: {
285 // The touch point should have been added to the event from an earlier
286 // _PRESSED event. So find that.
287 // At the moment, only a maximum of 4 touch-points are allowed. So a
288 // simple loop should be sufficient.
289 for (unsigned i = 0; i < web_event->touchesLength; ++i) {
290 point = web_event->touches + i;
291 if (point->id == event.touch_id())
292 break;
293 point = NULL;
294 }
295 break;
296 }
297 default:
298 DLOG(WARNING) << "Unknown touch event " << event.type();
299 break;
300 }
301
302 if (!point)
303 return NULL;
304
305 // The spec requires the radii values to be positive (and 1 when unknown).
306 point->radiusX = std::max(1.f, event.radius_x());
307 point->radiusY = std::max(1.f, event.radius_y());
308 point->rotationAngle = event.rotation_angle();
309 point->force = event.force();
310
311 // Update the location and state of the point.
312 point->state = TouchPointStateFromEvent(event);
313 point->position.x = event.x();
314 point->position.y = event.y();
315
316 const gfx::PointF& root_point = event.root_location_f();
317 point->screenPosition.x = root_point.x();
318 point->screenPosition.y = root_point.y();
319
320 // Mark the rest of the points as stationary.
321 for (unsigned i = 0; i < web_event->touchesLength; ++i) {
322 blink::WebTouchPoint* iter = web_event->touches + i;
323 if (iter != point)
324 iter->state = blink::WebTouchPoint::StateStationary;
325 }
326
327 // Update the type of the touch event.
328 WebTouchEventTraits::ResetType(TouchEventTypeFromEvent(event),
329 event.time_stamp().InSecondsF(),
330 web_event);
331 web_event->modifiers = EventFlagsToWebEventModifiers(event.flags());
332
333 return point;
334 }
335
336 } // namespace content 238 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698