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/ui_events_helper.h" | 5 #include "content/browser/renderer_host/ui_events_helper.h" |
6 | 6 |
| 7 #include "content/browser/renderer_host/input/web_input_event_util.h" |
7 #include "content/common/input/web_touch_event_traits.h" | 8 #include "content/common/input/web_touch_event_traits.h" |
8 #include "third_party/WebKit/public/web/WebInputEvent.h" | 9 #include "third_party/WebKit/public/web/WebInputEvent.h" |
9 #include "ui/events/event.h" | 10 #include "ui/events/event.h" |
10 #include "ui/events/event_constants.h" | 11 #include "ui/events/event_constants.h" |
11 | 12 |
12 namespace { | 13 namespace { |
13 | 14 |
14 int WebModifiersToUIFlags(int modifiers) { | 15 int WebModifiersToUIFlags(int modifiers) { |
15 int flags = ui::EF_NONE; | 16 int flags = ui::EF_NONE; |
16 | 17 |
(...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
235 NOTREACHED() << "Unknown gesture type: " << event.type(); | 236 NOTREACHED() << "Unknown gesture type: " << event.type(); |
236 } | 237 } |
237 | 238 |
238 gesture_event.sourceDevice = blink::WebGestureDeviceTouchscreen; | 239 gesture_event.sourceDevice = blink::WebGestureDeviceTouchscreen; |
239 gesture_event.modifiers = EventFlagsToWebEventModifiers(event.flags()); | 240 gesture_event.modifiers = EventFlagsToWebEventModifiers(event.flags()); |
240 gesture_event.timeStampSeconds = event.time_stamp().InSecondsF(); | 241 gesture_event.timeStampSeconds = event.time_stamp().InSecondsF(); |
241 | 242 |
242 return gesture_event; | 243 return gesture_event; |
243 } | 244 } |
244 | 245 |
245 int EventFlagsToWebEventModifiers(int flags) { | |
246 int modifiers = 0; | |
247 | |
248 if (flags & ui::EF_SHIFT_DOWN) | |
249 modifiers |= blink::WebInputEvent::ShiftKey; | |
250 if (flags & ui::EF_CONTROL_DOWN) | |
251 modifiers |= blink::WebInputEvent::ControlKey; | |
252 if (flags & ui::EF_ALT_DOWN) | |
253 modifiers |= blink::WebInputEvent::AltKey; | |
254 if (flags & ui::EF_COMMAND_DOWN) | |
255 modifiers |= blink::WebInputEvent::MetaKey; | |
256 | |
257 if (flags & ui::EF_LEFT_MOUSE_BUTTON) | |
258 modifiers |= blink::WebInputEvent::LeftButtonDown; | |
259 if (flags & ui::EF_MIDDLE_MOUSE_BUTTON) | |
260 modifiers |= blink::WebInputEvent::MiddleButtonDown; | |
261 if (flags & ui::EF_RIGHT_MOUSE_BUTTON) | |
262 modifiers |= blink::WebInputEvent::RightButtonDown; | |
263 if (flags & ui::EF_CAPS_LOCK_DOWN) | |
264 modifiers |= blink::WebInputEvent::CapsLockOn; | |
265 if (flags & ui::EF_IS_REPEAT) | |
266 modifiers |= blink::WebInputEvent::IsAutoRepeat; | |
267 return modifiers; | |
268 } | |
269 | |
270 blink::WebTouchPoint* UpdateWebTouchEventFromUIEvent( | 246 blink::WebTouchPoint* UpdateWebTouchEventFromUIEvent( |
271 const ui::TouchEvent& event, | 247 const ui::TouchEvent& event, |
272 blink::WebTouchEvent* web_event) { | 248 blink::WebTouchEvent* web_event) { |
273 blink::WebTouchPoint* point = NULL; | 249 blink::WebTouchPoint* point = NULL; |
274 switch (event.type()) { | 250 switch (event.type()) { |
275 case ui::ET_TOUCH_PRESSED: | 251 case ui::ET_TOUCH_PRESSED: |
276 // Add a new touch point. | 252 // Add a new touch point. |
277 if (web_event->touchesLength < blink::WebTouchEvent::touchesLengthCap) { | 253 if (web_event->touchesLength < blink::WebTouchEvent::touchesLengthCap) { |
278 point = &web_event->touches[web_event->touchesLength++]; | 254 point = &web_event->touches[web_event->touchesLength++]; |
279 point->id = event.touch_id(); | 255 point->id = event.touch_id(); |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
327 // Update the type of the touch event. | 303 // Update the type of the touch event. |
328 WebTouchEventTraits::ResetType(TouchEventTypeFromEvent(event), | 304 WebTouchEventTraits::ResetType(TouchEventTypeFromEvent(event), |
329 event.time_stamp().InSecondsF(), | 305 event.time_stamp().InSecondsF(), |
330 web_event); | 306 web_event); |
331 web_event->modifiers = EventFlagsToWebEventModifiers(event.flags()); | 307 web_event->modifiers = EventFlagsToWebEventModifiers(event.flags()); |
332 | 308 |
333 return point; | 309 return point; |
334 } | 310 } |
335 | 311 |
336 } // namespace content | 312 } // namespace content |
OLD | NEW |