| 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 "build/build_config.h" | 7 #include "build/build_config.h" |
| 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 #include "content/browser/renderer_host/ui_events_helper.h" | 9 #include "content/browser/renderer_host/ui_events_helper.h" |
| 10 #include "ui/aura/client/screen_position_client.h" | 10 #include "ui/aura/client/screen_position_client.h" |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 49 } | 49 } |
| 50 NOTREACHED() << "Unexpected EventPointerType"; | 50 NOTREACHED() << "Unexpected EventPointerType"; |
| 51 return blink::WebPointerProperties::PointerType::Unknown; | 51 return blink::WebPointerProperties::PointerType::Unknown; |
| 52 } | 52 } |
| 53 | 53 |
| 54 } // namespace | 54 } // namespace |
| 55 | 55 |
| 56 #if defined(OS_WIN) | 56 #if defined(OS_WIN) |
| 57 blink::WebMouseEvent MakeUntranslatedWebMouseEventFromNativeEvent( | 57 blink::WebMouseEvent MakeUntranslatedWebMouseEventFromNativeEvent( |
| 58 const base::NativeEvent& native_event, | 58 const base::NativeEvent& native_event, |
| 59 const base::TimeDelta& time_stamp); | 59 const base::TimeDelta& time_stamp, |
| 60 blink::WebPointerProperties::PointerType pointer_type); |
| 60 blink::WebMouseWheelEvent MakeUntranslatedWebMouseWheelEventFromNativeEvent( | 61 blink::WebMouseWheelEvent MakeUntranslatedWebMouseWheelEventFromNativeEvent( |
| 61 const base::NativeEvent& native_event, | 62 const base::NativeEvent& native_event, |
| 62 const base::TimeDelta& time_stamp); | 63 const base::TimeDelta& time_stamp, |
| 64 blink::WebPointerProperties::PointerType pointer_type); |
| 63 blink::WebKeyboardEvent MakeWebKeyboardEventFromNativeEvent( | 65 blink::WebKeyboardEvent MakeWebKeyboardEventFromNativeEvent( |
| 64 const base::NativeEvent& native_event, | 66 const base::NativeEvent& native_event, |
| 65 const base::TimeDelta& time_stamp); | 67 const base::TimeDelta& time_stamp); |
| 66 blink::WebGestureEvent MakeWebGestureEventFromNativeEvent( | 68 blink::WebGestureEvent MakeWebGestureEventFromNativeEvent( |
| 67 const base::NativeEvent& native_event, | 69 const base::NativeEvent& native_event, |
| 68 const base::TimeDelta& time_stamp); | 70 const base::TimeDelta& time_stamp); |
| 69 #endif | 71 #endif |
| 70 | 72 |
| 71 blink::WebKeyboardEvent MakeWebKeyboardEventFromAuraEvent( | 73 blink::WebKeyboardEvent MakeWebKeyboardEventFromAuraEvent( |
| 72 const ui::KeyEvent& event) { | 74 const ui::KeyEvent& event) { |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 131 offset_ordinal_x = event.x_offset_ordinal(); | 133 offset_ordinal_x = event.x_offset_ordinal(); |
| 132 offset_ordinal_y = event.y_offset_ordinal(); | 134 offset_ordinal_y = event.y_offset_ordinal(); |
| 133 } | 135 } |
| 134 | 136 |
| 135 if (offset_ordinal_x != 0.f && webkit_event.deltaX != 0.f) | 137 if (offset_ordinal_x != 0.f && webkit_event.deltaX != 0.f) |
| 136 webkit_event.accelerationRatioX = offset_ordinal_x / webkit_event.deltaX; | 138 webkit_event.accelerationRatioX = offset_ordinal_x / webkit_event.deltaX; |
| 137 webkit_event.wheelTicksX = webkit_event.deltaX / kPixelsPerTick; | 139 webkit_event.wheelTicksX = webkit_event.deltaX / kPixelsPerTick; |
| 138 webkit_event.wheelTicksY = webkit_event.deltaY / kPixelsPerTick; | 140 webkit_event.wheelTicksY = webkit_event.deltaY / kPixelsPerTick; |
| 139 if (offset_ordinal_y != 0.f && webkit_event.deltaY != 0.f) | 141 if (offset_ordinal_y != 0.f && webkit_event.deltaY != 0.f) |
| 140 webkit_event.accelerationRatioY = offset_ordinal_y / webkit_event.deltaY; | 142 webkit_event.accelerationRatioY = offset_ordinal_y / webkit_event.deltaY; |
| 143 |
| 144 webkit_event.pointerType = |
| 145 EventPointerTypeToWebPointerType(event.pointer_details().pointer_type); |
| 141 return webkit_event; | 146 return webkit_event; |
| 142 } | 147 } |
| 143 | 148 |
| 144 blink::WebGestureEvent MakeWebGestureEventFromAuraEvent( | 149 blink::WebGestureEvent MakeWebGestureEventFromAuraEvent( |
| 145 const ui::ScrollEvent& event) { | 150 const ui::ScrollEvent& event) { |
| 146 blink::WebGestureEvent webkit_event; | 151 blink::WebGestureEvent webkit_event; |
| 147 | 152 |
| 148 switch (event.type()) { | 153 switch (event.type()) { |
| 149 case ui::ET_SCROLL_FLING_START: | 154 case ui::ET_SCROLL_FLING_START: |
| 150 webkit_event.type = blink::WebInputEvent::GestureFlingStart; | 155 webkit_event.type = blink::WebInputEvent::GestureFlingStart; |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 195 // ui::MouseEvent. This will not be necessary once only XInput2 is supported. | 200 // ui::MouseEvent. This will not be necessary once only XInput2 is supported. |
| 196 // | 201 // |
| 197 | 202 |
| 198 blink::WebMouseEvent MakeWebMouseEvent(const ui::MouseEvent& event) { | 203 blink::WebMouseEvent MakeWebMouseEvent(const ui::MouseEvent& event) { |
| 199 // Construct an untranslated event from the platform event data. | 204 // Construct an untranslated event from the platform event data. |
| 200 blink::WebMouseEvent webkit_event = | 205 blink::WebMouseEvent webkit_event = |
| 201 #if defined(OS_WIN) | 206 #if defined(OS_WIN) |
| 202 // On Windows we have WM_ events comming from desktop and pure aura | 207 // On Windows we have WM_ events comming from desktop and pure aura |
| 203 // events comming from metro mode. | 208 // events comming from metro mode. |
| 204 event.native_event().message && (event.type() != ui::ET_MOUSE_EXITED) | 209 event.native_event().message && (event.type() != ui::ET_MOUSE_EXITED) |
| 205 ? MakeUntranslatedWebMouseEventFromNativeEvent(event.native_event(), | 210 ? MakeUntranslatedWebMouseEventFromNativeEvent( |
| 206 event.time_stamp()) | 211 event.native_event(), event.time_stamp(), |
| 212 EventPointerTypeToWebPointerType( |
| 213 event.pointer_details().pointer_type)) |
| 207 : MakeWebMouseEventFromAuraEvent(event); | 214 : MakeWebMouseEventFromAuraEvent(event); |
| 208 #else | 215 #else |
| 209 MakeWebMouseEventFromAuraEvent(event); | 216 MakeWebMouseEventFromAuraEvent(event); |
| 210 #endif | 217 #endif |
| 211 // Replace the event's coordinate fields with translated position data from | 218 // Replace the event's coordinate fields with translated position data from |
| 212 // |event|. | 219 // |event|. |
| 213 webkit_event.windowX = webkit_event.x = event.x(); | 220 webkit_event.windowX = webkit_event.x = event.x(); |
| 214 webkit_event.windowY = webkit_event.y = event.y(); | 221 webkit_event.windowY = webkit_event.y = event.y(); |
| 215 | 222 |
| 216 #if defined(OS_WIN) | 223 #if defined(OS_WIN) |
| 217 if (event.native_event().message) | 224 if (event.native_event().message) |
| 218 return webkit_event; | 225 return webkit_event; |
| 219 #endif | 226 #endif |
| 220 const gfx::Point screen_point = GetScreenLocationFromEvent(event); | 227 const gfx::Point screen_point = GetScreenLocationFromEvent(event); |
| 221 webkit_event.globalX = screen_point.x(); | 228 webkit_event.globalX = screen_point.x(); |
| 222 webkit_event.globalY = screen_point.y(); | 229 webkit_event.globalY = screen_point.y(); |
| 223 | 230 |
| 224 return webkit_event; | 231 return webkit_event; |
| 225 } | 232 } |
| 226 | 233 |
| 227 blink::WebMouseWheelEvent MakeWebMouseWheelEvent( | 234 blink::WebMouseWheelEvent MakeWebMouseWheelEvent( |
| 228 const ui::MouseWheelEvent& event) { | 235 const ui::MouseWheelEvent& event) { |
| 229 #if defined(OS_WIN) | 236 #if defined(OS_WIN) |
| 230 // Construct an untranslated event from the platform event data. | 237 // Construct an untranslated event from the platform event data. |
| 231 blink::WebMouseWheelEvent webkit_event = | 238 blink::WebMouseWheelEvent webkit_event = |
| 232 event.native_event().message | 239 event.native_event().message |
| 233 ? MakeUntranslatedWebMouseWheelEventFromNativeEvent( | 240 ? MakeUntranslatedWebMouseWheelEventFromNativeEvent( |
| 234 event.native_event(), event.time_stamp()) | 241 event.native_event(), event.time_stamp(), |
| 242 EventPointerTypeToWebPointerType( |
| 243 event.pointer_details().pointer_type)) |
| 235 : MakeWebMouseWheelEventFromAuraEvent(event); | 244 : MakeWebMouseWheelEventFromAuraEvent(event); |
| 236 #else | 245 #else |
| 237 blink::WebMouseWheelEvent webkit_event = | 246 blink::WebMouseWheelEvent webkit_event = |
| 238 MakeWebMouseWheelEventFromAuraEvent(event); | 247 MakeWebMouseWheelEventFromAuraEvent(event); |
| 239 #endif | 248 #endif |
| 240 | 249 |
| 241 // Replace the event's coordinate fields with translated position data from | 250 // Replace the event's coordinate fields with translated position data from |
| 242 // |event|. | 251 // |event|. |
| 243 webkit_event.windowX = webkit_event.x = event.x(); | 252 webkit_event.windowX = webkit_event.x = event.x(); |
| 244 webkit_event.windowY = webkit_event.y = event.y(); | 253 webkit_event.windowY = webkit_event.y = event.y(); |
| (...skipping 12 matching lines...) Expand all Loading... |
| 257 | 266 |
| 258 return webkit_event; | 267 return webkit_event; |
| 259 } | 268 } |
| 260 | 269 |
| 261 blink::WebMouseWheelEvent MakeWebMouseWheelEvent(const ui::ScrollEvent& event) { | 270 blink::WebMouseWheelEvent MakeWebMouseWheelEvent(const ui::ScrollEvent& event) { |
| 262 #if defined(OS_WIN) | 271 #if defined(OS_WIN) |
| 263 // Construct an untranslated event from the platform event data. | 272 // Construct an untranslated event from the platform event data. |
| 264 blink::WebMouseWheelEvent webkit_event = | 273 blink::WebMouseWheelEvent webkit_event = |
| 265 event.native_event().message | 274 event.native_event().message |
| 266 ? MakeUntranslatedWebMouseWheelEventFromNativeEvent( | 275 ? MakeUntranslatedWebMouseWheelEventFromNativeEvent( |
| 267 event.native_event(), event.time_stamp()) | 276 event.native_event(), event.time_stamp(), |
| 277 EventPointerTypeToWebPointerType( |
| 278 event.pointer_details().pointer_type)) |
| 268 : MakeWebMouseWheelEventFromAuraEvent(event); | 279 : MakeWebMouseWheelEventFromAuraEvent(event); |
| 269 #else | 280 #else |
| 270 blink::WebMouseWheelEvent webkit_event = | 281 blink::WebMouseWheelEvent webkit_event = |
| 271 MakeWebMouseWheelEventFromAuraEvent(event); | 282 MakeWebMouseWheelEventFromAuraEvent(event); |
| 272 #endif | 283 #endif |
| 273 | 284 |
| 274 // Replace the event's coordinate fields with translated position data from | 285 // Replace the event's coordinate fields with translated position data from |
| 275 // |event|. | 286 // |event|. |
| 276 webkit_event.windowX = webkit_event.x = event.x(); | 287 webkit_event.windowX = webkit_event.x = event.x(); |
| 277 webkit_event.windowY = webkit_event.y = event.y(); | 288 webkit_event.windowY = webkit_event.y = event.y(); |
| (...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 432 webkit_event.tiltX = roundf(event.pointer_details().tilt_x); | 443 webkit_event.tiltX = roundf(event.pointer_details().tilt_x); |
| 433 webkit_event.tiltY = roundf(event.pointer_details().tilt_y); | 444 webkit_event.tiltY = roundf(event.pointer_details().tilt_y); |
| 434 webkit_event.force = event.pointer_details().force; | 445 webkit_event.force = event.pointer_details().force; |
| 435 webkit_event.pointerType = | 446 webkit_event.pointerType = |
| 436 EventPointerTypeToWebPointerType(event.pointer_details().pointer_type); | 447 EventPointerTypeToWebPointerType(event.pointer_details().pointer_type); |
| 437 | 448 |
| 438 return webkit_event; | 449 return webkit_event; |
| 439 } | 450 } |
| 440 | 451 |
| 441 } // namespace content | 452 } // namespace content |
| OLD | NEW |