| 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/window.h" | 9 #include "ui/aura/window.h" |
| 10 #include "ui/events/event.h" | 10 #include "ui/events/event.h" |
| 11 #include "ui/events/event_utils.h" | 11 #include "ui/events/event_utils.h" |
| 12 | |
| 13 #if defined(USE_X11) || defined(USE_OZONE) | |
| 14 #include "ui/events/keycodes/dom4/keycode_converter.h" | 12 #include "ui/events/keycodes/dom4/keycode_converter.h" |
| 15 #endif | |
| 16 | 13 |
| 17 namespace content { | 14 namespace content { |
| 18 | 15 |
| 19 #if defined(OS_WIN) | 16 #if defined(OS_WIN) |
| 20 blink::WebMouseEvent MakeUntranslatedWebMouseEventFromNativeEvent( | 17 blink::WebMouseEvent MakeUntranslatedWebMouseEventFromNativeEvent( |
| 21 const base::NativeEvent& native_event); | 18 const base::NativeEvent& native_event); |
| 22 blink::WebMouseWheelEvent MakeUntranslatedWebMouseWheelEventFromNativeEvent( | 19 blink::WebMouseWheelEvent MakeUntranslatedWebMouseWheelEventFromNativeEvent( |
| 23 const base::NativeEvent& native_event); | 20 const base::NativeEvent& native_event); |
| 24 blink::WebKeyboardEvent MakeWebKeyboardEventFromNativeEvent( | 21 blink::WebKeyboardEvent MakeWebKeyboardEventFromNativeEvent( |
| 25 const base::NativeEvent& native_event); | 22 const base::NativeEvent& native_event); |
| 26 blink::WebGestureEvent MakeWebGestureEventFromNativeEvent( | 23 blink::WebGestureEvent MakeWebGestureEventFromNativeEvent( |
| 27 const base::NativeEvent& native_event); | 24 const base::NativeEvent& native_event); |
| 28 #endif | 25 #endif |
| 29 #if defined(USE_X11) || defined(USE_OZONE) | 26 |
| 30 blink::WebKeyboardEvent MakeWebKeyboardEventFromAuraEvent( | 27 blink::WebKeyboardEvent MakeWebKeyboardEventFromAuraEvent( |
| 31 const ui::KeyEvent& event) { | 28 const ui::KeyEvent& event) { |
| 32 blink::WebKeyboardEvent webkit_event; | 29 blink::WebKeyboardEvent webkit_event; |
| 33 | 30 |
| 34 webkit_event.timeStampSeconds = event.time_stamp().InSecondsF(); | 31 webkit_event.timeStampSeconds = event.time_stamp().InSecondsF(); |
| 35 webkit_event.modifiers = EventFlagsToWebEventModifiers(event.flags()); | 32 webkit_event.modifiers = EventFlagsToWebEventModifiers(event.flags()); |
| 36 | 33 |
| 37 switch (event.type()) { | 34 switch (event.type()) { |
| 38 case ui::ET_KEY_PRESSED: | 35 case ui::ET_KEY_PRESSED: |
| 39 webkit_event.type = event.is_char() ? blink::WebInputEvent::Char : | 36 webkit_event.type = event.is_char() ? blink::WebInputEvent::Char : |
| (...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 112 default: | 109 default: |
| 113 NOTREACHED() << "Unknown gesture type: " << event.type(); | 110 NOTREACHED() << "Unknown gesture type: " << event.type(); |
| 114 } | 111 } |
| 115 | 112 |
| 116 webkit_event.sourceDevice = blink::WebGestureDeviceTouchpad; | 113 webkit_event.sourceDevice = blink::WebGestureDeviceTouchpad; |
| 117 webkit_event.modifiers = EventFlagsToWebEventModifiers(event.flags()); | 114 webkit_event.modifiers = EventFlagsToWebEventModifiers(event.flags()); |
| 118 webkit_event.timeStampSeconds = event.time_stamp().InSecondsF(); | 115 webkit_event.timeStampSeconds = event.time_stamp().InSecondsF(); |
| 119 return webkit_event; | 116 return webkit_event; |
| 120 } | 117 } |
| 121 | 118 |
| 122 #endif | |
| 123 | |
| 124 blink::WebMouseEvent MakeWebMouseEventFromAuraEvent( | 119 blink::WebMouseEvent MakeWebMouseEventFromAuraEvent( |
| 125 const ui::MouseEvent& event); | 120 const ui::MouseEvent& event); |
| 126 blink::WebMouseWheelEvent MakeWebMouseWheelEventFromAuraEvent( | 121 blink::WebMouseWheelEvent MakeWebMouseWheelEventFromAuraEvent( |
| 127 const ui::MouseWheelEvent& event); | 122 const ui::MouseWheelEvent& event); |
| 128 | 123 |
| 129 // General approach: | 124 // General approach: |
| 130 // | 125 // |
| 131 // ui::Event only carries a subset of possible event data provided to Aura by | 126 // ui::Event only carries a subset of possible event data provided to Aura by |
| 132 // the host platform. WebKit utilizes a larger subset of that information than | 127 // the host platform. WebKit utilizes a larger subset of that information than |
| 133 // Aura itself. WebKit includes some built in cracking functionality that we | 128 // Aura itself. WebKit includes some built in cracking functionality that we |
| (...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 224 } | 219 } |
| 225 | 220 |
| 226 blink::WebKeyboardEvent MakeWebKeyboardEvent(const ui::KeyEvent& event) { | 221 blink::WebKeyboardEvent MakeWebKeyboardEvent(const ui::KeyEvent& event) { |
| 227 // Windows can figure out whether or not to construct a RawKeyDown or a Char | 222 // Windows can figure out whether or not to construct a RawKeyDown or a Char |
| 228 // WebInputEvent based on the type of message carried in | 223 // WebInputEvent based on the type of message carried in |
| 229 // event.native_event(). X11 is not so fortunate, there is no separate | 224 // event.native_event(). X11 is not so fortunate, there is no separate |
| 230 // translated event type, so DesktopHostLinux sends an extra KeyEvent with | 225 // translated event type, so DesktopHostLinux sends an extra KeyEvent with |
| 231 // is_char() == true. We need to pass the ui::KeyEvent to the X11 function | 226 // is_char() == true. We need to pass the ui::KeyEvent to the X11 function |
| 232 // to detect this case so the right event type can be constructed. | 227 // to detect this case so the right event type can be constructed. |
| 233 #if defined(OS_WIN) | 228 #if defined(OS_WIN) |
| 234 if (!event.HasNativeEvent()) | 229 if (event.HasNativeEvent()) { |
| 235 return blink::WebKeyboardEvent(); | 230 // Key events require no translation by the aura system. |
| 236 | 231 return MakeWebKeyboardEventFromNativeEvent(event.native_event()); |
| 237 // Key events require no translation by the aura system. | 232 } |
| 238 return MakeWebKeyboardEventFromNativeEvent(event.native_event()); | 233 #endif |
| 239 #else | |
| 240 return MakeWebKeyboardEventFromAuraEvent(event); | 234 return MakeWebKeyboardEventFromAuraEvent(event); |
| 241 #endif | |
| 242 } | 235 } |
| 243 | 236 |
| 244 blink::WebGestureEvent MakeWebGestureEvent(const ui::GestureEvent& event) { | 237 blink::WebGestureEvent MakeWebGestureEvent(const ui::GestureEvent& event) { |
| 245 blink::WebGestureEvent gesture_event; | 238 blink::WebGestureEvent gesture_event; |
| 246 #if defined(OS_WIN) | 239 #if defined(OS_WIN) |
| 247 if (event.HasNativeEvent()) | 240 if (event.HasNativeEvent()) |
| 248 gesture_event = MakeWebGestureEventFromNativeEvent(event.native_event()); | 241 gesture_event = MakeWebGestureEventFromNativeEvent(event.native_event()); |
| 249 else | 242 else |
| 250 gesture_event = MakeWebGestureEventFromUIEvent(event); | 243 gesture_event = MakeWebGestureEventFromUIEvent(event); |
| 251 #else | 244 #else |
| (...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 354 webkit_event.deltaY = event.y_offset(); | 347 webkit_event.deltaY = event.y_offset(); |
| 355 } | 348 } |
| 356 | 349 |
| 357 webkit_event.wheelTicksX = webkit_event.deltaX / kPixelsPerTick; | 350 webkit_event.wheelTicksX = webkit_event.deltaX / kPixelsPerTick; |
| 358 webkit_event.wheelTicksY = webkit_event.deltaY / kPixelsPerTick; | 351 webkit_event.wheelTicksY = webkit_event.deltaY / kPixelsPerTick; |
| 359 | 352 |
| 360 return webkit_event; | 353 return webkit_event; |
| 361 } | 354 } |
| 362 | 355 |
| 363 } // namespace content | 356 } // namespace content |
| OLD | NEW |