| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 // MSVC++ requires this to be set before any other includes to get M_PI. | 5 // MSVC++ requires this to be set before any other includes to get M_PI. |
| 6 #define _USE_MATH_DEFINES | 6 #define _USE_MATH_DEFINES |
| 7 | 7 |
| 8 #include "content/browser/renderer_host/input/web_input_event_util.h" | 8 #include "content/browser/renderer_host/input/web_input_event_util.h" |
| 9 | 9 |
| 10 #include <cmath> | 10 #include <cmath> |
| 11 | 11 |
| 12 #include "base/strings/string_util.h" | 12 #include "base/strings/string_util.h" |
| 13 #include "content/common/input/web_touch_event_traits.h" | 13 #include "content/common/input/web_touch_event_traits.h" |
| 14 #include "ui/events/event_constants.h" |
| 14 #include "ui/events/gesture_detection/gesture_event_data.h" | 15 #include "ui/events/gesture_detection/gesture_event_data.h" |
| 15 #include "ui/events/gesture_detection/motion_event.h" | 16 #include "ui/events/gesture_detection/motion_event.h" |
| 16 | 17 |
| 17 using blink::WebGestureEvent; | 18 using blink::WebGestureEvent; |
| 18 using blink::WebInputEvent; | 19 using blink::WebInputEvent; |
| 19 using blink::WebTouchEvent; | 20 using blink::WebTouchEvent; |
| 20 using blink::WebTouchPoint; | 21 using blink::WebTouchPoint; |
| 21 using ui::MotionEvent; | 22 using ui::MotionEvent; |
| 22 | 23 |
| 23 namespace { | 24 namespace { |
| (...skipping 234 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 258 static_cast<int>(blink::WebTouchEvent::touchesLengthCap), | 259 static_cast<int>(blink::WebTouchEvent::touchesLengthCap), |
| 259 inconsistent_maximum_number_of_active_touch_points); | 260 inconsistent_maximum_number_of_active_touch_points); |
| 260 | 261 |
| 261 blink::WebTouchEvent result; | 262 blink::WebTouchEvent result; |
| 262 | 263 |
| 263 WebTouchEventTraits::ResetType( | 264 WebTouchEventTraits::ResetType( |
| 264 ToWebInputEventType(event.GetAction()), | 265 ToWebInputEventType(event.GetAction()), |
| 265 (event.GetEventTime() - base::TimeTicks()).InSecondsF(), | 266 (event.GetEventTime() - base::TimeTicks()).InSecondsF(), |
| 266 &result); | 267 &result); |
| 267 | 268 |
| 269 result.modifiers = EventFlagsToWebEventModifiers(event.GetFlags()); |
| 268 result.touchesLength = | 270 result.touchesLength = |
| 269 std::min(event.GetPointerCount(), | 271 std::min(event.GetPointerCount(), |
| 270 static_cast<size_t>(WebTouchEvent::touchesLengthCap)); | 272 static_cast<size_t>(WebTouchEvent::touchesLengthCap)); |
| 271 DCHECK_GT(result.touchesLength, 0U); | 273 DCHECK_GT(result.touchesLength, 0U); |
| 272 | 274 |
| 273 for (size_t i = 0; i < result.touchesLength; ++i) | 275 for (size_t i = 0; i < result.touchesLength; ++i) |
| 274 result.touches[i] = CreateWebTouchPoint(event, i); | 276 result.touches[i] = CreateWebTouchPoint(event, i); |
| 275 | 277 |
| 276 return result; | 278 return result; |
| 277 } | 279 } |
| 278 | 280 |
| 279 WebGestureEvent CreateWebGestureEventFromGestureEventData( | 281 WebGestureEvent CreateWebGestureEventFromGestureEventData( |
| 280 const ui::GestureEventData& data) { | 282 const ui::GestureEventData& data) { |
| 281 WebGestureEvent gesture; | 283 WebGestureEvent gesture; |
| 284 gesture.modifiers = EventFlagsToWebEventModifiers(data.flags); |
| 282 gesture.x = data.x; | 285 gesture.x = data.x; |
| 283 gesture.y = data.y; | 286 gesture.y = data.y; |
| 284 gesture.globalX = data.raw_x; | 287 gesture.globalX = data.raw_x; |
| 285 gesture.globalY = data.raw_y; | 288 gesture.globalY = data.raw_y; |
| 286 gesture.timeStampSeconds = (data.time - base::TimeTicks()).InSecondsF(); | 289 gesture.timeStampSeconds = (data.time - base::TimeTicks()).InSecondsF(); |
| 287 gesture.sourceDevice = blink::WebGestureDeviceTouchscreen; | 290 gesture.sourceDevice = blink::WebGestureDeviceTouchscreen; |
| 288 | 291 |
| 289 switch (data.type()) { | 292 switch (data.type()) { |
| 290 case ui::ET_GESTURE_SHOW_PRESS: | 293 case ui::ET_GESTURE_SHOW_PRESS: |
| 291 gesture.type = WebInputEvent::GestureShowPress; | 294 gesture.type = WebInputEvent::GestureShowPress; |
| (...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 368 << "in Aura, and should never end up here."; | 371 << "in Aura, and should never end up here."; |
| 369 break; | 372 break; |
| 370 default: | 373 default: |
| 371 NOTREACHED() << "ui::EventType provided wasn't a valid gesture event."; | 374 NOTREACHED() << "ui::EventType provided wasn't a valid gesture event."; |
| 372 break; | 375 break; |
| 373 } | 376 } |
| 374 | 377 |
| 375 return gesture; | 378 return gesture; |
| 376 } | 379 } |
| 377 | 380 |
| 381 int EventFlagsToWebEventModifiers(int flags) { |
| 382 int modifiers = 0; |
| 383 |
| 384 if (flags & ui::EF_SHIFT_DOWN) |
| 385 modifiers |= blink::WebInputEvent::ShiftKey; |
| 386 if (flags & ui::EF_CONTROL_DOWN) |
| 387 modifiers |= blink::WebInputEvent::ControlKey; |
| 388 if (flags & ui::EF_ALT_DOWN) |
| 389 modifiers |= blink::WebInputEvent::AltKey; |
| 390 if (flags & ui::EF_COMMAND_DOWN) |
| 391 modifiers |= blink::WebInputEvent::MetaKey; |
| 392 |
| 393 if (flags & ui::EF_LEFT_MOUSE_BUTTON) |
| 394 modifiers |= blink::WebInputEvent::LeftButtonDown; |
| 395 if (flags & ui::EF_MIDDLE_MOUSE_BUTTON) |
| 396 modifiers |= blink::WebInputEvent::MiddleButtonDown; |
| 397 if (flags & ui::EF_RIGHT_MOUSE_BUTTON) |
| 398 modifiers |= blink::WebInputEvent::RightButtonDown; |
| 399 if (flags & ui::EF_CAPS_LOCK_DOWN) |
| 400 modifiers |= blink::WebInputEvent::CapsLockOn; |
| 401 if (flags & ui::EF_IS_REPEAT) |
| 402 modifiers |= blink::WebInputEvent::IsAutoRepeat; |
| 403 |
| 404 return modifiers; |
| 405 } |
| 406 |
| 407 int WebEventModifiersToEventFlags(int modifiers) { |
| 408 int flags = 0; |
| 409 |
| 410 if (modifiers & blink::WebInputEvent::ShiftKey) |
| 411 flags |= ui::EF_SHIFT_DOWN; |
| 412 if (modifiers & blink::WebInputEvent::ControlKey) |
| 413 flags |= ui::EF_CONTROL_DOWN; |
| 414 if (modifiers & blink::WebInputEvent::AltKey) |
| 415 flags |= ui::EF_ALT_DOWN; |
| 416 if (modifiers & blink::WebInputEvent::MetaKey) |
| 417 flags |= ui::EF_COMMAND_DOWN; |
| 418 |
| 419 if (modifiers & blink::WebInputEvent::LeftButtonDown) |
| 420 flags |= ui::EF_LEFT_MOUSE_BUTTON; |
| 421 if (modifiers & blink::WebInputEvent::MiddleButtonDown) |
| 422 flags |= ui::EF_MIDDLE_MOUSE_BUTTON; |
| 423 if (modifiers & blink::WebInputEvent::RightButtonDown) |
| 424 flags |= ui::EF_RIGHT_MOUSE_BUTTON; |
| 425 if (modifiers & blink::WebInputEvent::CapsLockOn) |
| 426 flags |= ui::EF_CAPS_LOCK_DOWN; |
| 427 if (modifiers & blink::WebInputEvent::IsAutoRepeat) |
| 428 flags |= ui::EF_IS_REPEAT; |
| 429 |
| 430 return flags; |
| 431 } |
| 432 |
| 378 } // namespace content | 433 } // namespace content |
| OLD | NEW |