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 |