| 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 "content/browser/renderer_host/web_input_event_aura.h" | 5 #include "content/browser/renderer_host/web_input_event_aura.h" |
| 6 | 6 |
| 7 #include "content/browser/renderer_host/input/web_input_event_util.h" | 7 #include "content/browser/renderer_host/input/web_input_event_util.h" |
| 8 #include "content/browser/renderer_host/ui_events_helper.h" | 8 #include "content/browser/renderer_host/ui_events_helper.h" |
| 9 #include "ui/aura/client/screen_position_client.h" | 9 #include "ui/aura/client/screen_position_client.h" |
| 10 #include "ui/aura/window.h" | 10 #include "ui/aura/window.h" |
| (...skipping 30 matching lines...) Expand all Loading... |
| 41 case ui::DomKeyLocation::RIGHT: | 41 case ui::DomKeyLocation::RIGHT: |
| 42 return blink::WebInputEvent::IsRight; | 42 return blink::WebInputEvent::IsRight; |
| 43 case ui::DomKeyLocation::NUMPAD: | 43 case ui::DomKeyLocation::NUMPAD: |
| 44 return blink::WebInputEvent::IsKeyPad; | 44 return blink::WebInputEvent::IsKeyPad; |
| 45 case ui::DomKeyLocation::STANDARD: | 45 case ui::DomKeyLocation::STANDARD: |
| 46 break; | 46 break; |
| 47 } | 47 } |
| 48 return static_cast<blink::WebInputEvent::Modifiers>(0); | 48 return static_cast<blink::WebInputEvent::Modifiers>(0); |
| 49 } | 49 } |
| 50 | 50 |
| 51 blink::WebPointerProperties::PointerType EventPointerTypeToWebPointerType( |
| 52 ui::EventPointerType pointer_type) { |
| 53 switch (pointer_type) { |
| 54 case ui::EventPointerType::POINTER_TYPE_UNKNOWN: |
| 55 return blink::WebPointerProperties::PointerType::PointerTypeUnknown; |
| 56 case ui::EventPointerType::POINTER_TYPE_MOUSE: |
| 57 return blink::WebPointerProperties::PointerType::PointerTypeMouse; |
| 58 case ui::EventPointerType::POINTER_TYPE_PEN: |
| 59 return blink::WebPointerProperties::PointerType::PointerTypePen; |
| 60 case ui::EventPointerType::POINTER_TYPE_TOUCH: |
| 61 return blink::WebPointerProperties::PointerType::PointerTypeTouch; |
| 62 } |
| 63 NOTREACHED() << "Unexpected EventPointerType"; |
| 64 return blink::WebPointerProperties::PointerType::PointerTypeUnknown; |
| 65 } |
| 66 |
| 51 } // namespace | 67 } // namespace |
| 52 | 68 |
| 53 #if defined(OS_WIN) | 69 #if defined(OS_WIN) |
| 54 blink::WebMouseEvent MakeUntranslatedWebMouseEventFromNativeEvent( | 70 blink::WebMouseEvent MakeUntranslatedWebMouseEventFromNativeEvent( |
| 55 const base::NativeEvent& native_event); | 71 const base::NativeEvent& native_event); |
| 56 blink::WebMouseWheelEvent MakeUntranslatedWebMouseWheelEventFromNativeEvent( | 72 blink::WebMouseWheelEvent MakeUntranslatedWebMouseWheelEventFromNativeEvent( |
| 57 const base::NativeEvent& native_event); | 73 const base::NativeEvent& native_event); |
| 58 blink::WebKeyboardEvent MakeWebKeyboardEventFromNativeEvent( | 74 blink::WebKeyboardEvent MakeWebKeyboardEventFromNativeEvent( |
| 59 const base::NativeEvent& native_event); | 75 const base::NativeEvent& native_event); |
| 60 blink::WebGestureEvent MakeWebGestureEventFromNativeEvent( | 76 blink::WebGestureEvent MakeWebGestureEventFromNativeEvent( |
| (...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 148 default: | 164 default: |
| 149 NOTREACHED() << "Unknown gesture type: " << event.type(); | 165 NOTREACHED() << "Unknown gesture type: " << event.type(); |
| 150 } | 166 } |
| 151 | 167 |
| 152 webkit_event.sourceDevice = blink::WebGestureDeviceTouchpad; | 168 webkit_event.sourceDevice = blink::WebGestureDeviceTouchpad; |
| 153 webkit_event.modifiers = ui::EventFlagsToWebEventModifiers(event.flags()); | 169 webkit_event.modifiers = ui::EventFlagsToWebEventModifiers(event.flags()); |
| 154 webkit_event.timeStampSeconds = event.time_stamp().InSecondsF(); | 170 webkit_event.timeStampSeconds = event.time_stamp().InSecondsF(); |
| 155 return webkit_event; | 171 return webkit_event; |
| 156 } | 172 } |
| 157 | 173 |
| 158 blink::WebMouseEvent MakeWebMouseEventFromAuraEvent( | |
| 159 const ui::MouseEvent& event); | |
| 160 blink::WebMouseWheelEvent MakeWebMouseWheelEventFromAuraEvent( | |
| 161 const ui::MouseWheelEvent& event); | |
| 162 | |
| 163 // General approach: | 174 // General approach: |
| 164 // | 175 // |
| 165 // ui::Event only carries a subset of possible event data provided to Aura by | 176 // ui::Event only carries a subset of possible event data provided to Aura by |
| 166 // the host platform. WebKit utilizes a larger subset of that information than | 177 // the host platform. WebKit utilizes a larger subset of that information than |
| 167 // Aura itself. WebKit includes some built in cracking functionality that we | 178 // Aura itself. WebKit includes some built in cracking functionality that we |
| 168 // rely on to obtain this information cleanly and consistently. | 179 // rely on to obtain this information cleanly and consistently. |
| 169 // | 180 // |
| 170 // The only place where an ui::Event's data differs from what the underlying | 181 // The only place where an ui::Event's data differs from what the underlying |
| 171 // base::NativeEvent would provide is position data, since we would like to | 182 // base::NativeEvent would provide is position data, since we would like to |
| 172 // provide coordinates relative to the aura::Window that is hosting the | 183 // provide coordinates relative to the aura::Window that is hosting the |
| (...skipping 199 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 372 case ui::ET_MOUSE_EXITED: | 383 case ui::ET_MOUSE_EXITED: |
| 373 case ui::ET_MOUSE_MOVED: | 384 case ui::ET_MOUSE_MOVED: |
| 374 case ui::ET_MOUSE_DRAGGED: | 385 case ui::ET_MOUSE_DRAGGED: |
| 375 webkit_event.type = blink::WebInputEvent::MouseMove; | 386 webkit_event.type = blink::WebInputEvent::MouseMove; |
| 376 break; | 387 break; |
| 377 default: | 388 default: |
| 378 NOTIMPLEMENTED() << "Received unexpected event: " << event.type(); | 389 NOTIMPLEMENTED() << "Received unexpected event: " << event.type(); |
| 379 break; | 390 break; |
| 380 } | 391 } |
| 381 | 392 |
| 393 webkit_event.tiltX = roundf(event.pointer_details().tilt_x()); |
| 394 webkit_event.tiltY = roundf(event.pointer_details().tilt_y()); |
| 395 webkit_event.force = event.pointer_details().force(); |
| 396 webkit_event.pointerType = |
| 397 EventPointerTypeToWebPointerType(event.pointer_details().pointer_type()); |
| 398 |
| 382 return webkit_event; | 399 return webkit_event; |
| 383 } | 400 } |
| 384 | 401 |
| 385 blink::WebMouseWheelEvent MakeWebMouseWheelEventFromAuraEvent( | 402 blink::WebMouseWheelEvent MakeWebMouseWheelEventFromAuraEvent( |
| 386 const ui::MouseWheelEvent& event) { | 403 const ui::MouseWheelEvent& event) { |
| 387 blink::WebMouseWheelEvent webkit_event; | 404 blink::WebMouseWheelEvent webkit_event; |
| 388 | 405 |
| 389 webkit_event.type = blink::WebInputEvent::MouseWheel; | 406 webkit_event.type = blink::WebInputEvent::MouseWheel; |
| 390 webkit_event.button = blink::WebMouseEvent::ButtonNone; | 407 webkit_event.button = blink::WebMouseEvent::ButtonNone; |
| 391 webkit_event.modifiers = ui::EventFlagsToWebEventModifiers(event.flags()); | 408 webkit_event.modifiers = ui::EventFlagsToWebEventModifiers(event.flags()); |
| 392 webkit_event.timeStampSeconds = event.time_stamp().InSecondsF(); | 409 webkit_event.timeStampSeconds = event.time_stamp().InSecondsF(); |
| 393 | 410 |
| 394 if ((event.flags() & ui::EF_SHIFT_DOWN) != 0 && event.x_offset() == 0) { | 411 if ((event.flags() & ui::EF_SHIFT_DOWN) != 0 && event.x_offset() == 0) { |
| 395 webkit_event.deltaX = event.y_offset(); | 412 webkit_event.deltaX = event.y_offset(); |
| 396 webkit_event.deltaY = 0; | 413 webkit_event.deltaY = 0; |
| 397 } else { | 414 } else { |
| 398 webkit_event.deltaX = event.x_offset(); | 415 webkit_event.deltaX = event.x_offset(); |
| 399 webkit_event.deltaY = event.y_offset(); | 416 webkit_event.deltaY = event.y_offset(); |
| 400 } | 417 } |
| 401 | 418 |
| 402 webkit_event.wheelTicksX = webkit_event.deltaX / kPixelsPerTick; | 419 webkit_event.wheelTicksX = webkit_event.deltaX / kPixelsPerTick; |
| 403 webkit_event.wheelTicksY = webkit_event.deltaY / kPixelsPerTick; | 420 webkit_event.wheelTicksY = webkit_event.deltaY / kPixelsPerTick; |
| 404 | 421 |
| 422 webkit_event.tiltX = roundf(event.pointer_details().tilt_x()); |
| 423 webkit_event.tiltY = roundf(event.pointer_details().tilt_y()); |
| 424 webkit_event.force = event.pointer_details().force(); |
| 425 webkit_event.pointerType = |
| 426 EventPointerTypeToWebPointerType(event.pointer_details().pointer_type()); |
| 427 |
| 405 return webkit_event; | 428 return webkit_event; |
| 406 } | 429 } |
| 407 | 430 |
| 408 } // namespace content | 431 } // namespace content |
| OLD | NEW |