OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 "ui/aura/event.h" | 7 #include "ui/aura/event.h" |
8 #include "ui/aura/window.h" | 8 #include "ui/aura/window.h" |
9 | 9 |
10 namespace content { | 10 namespace content { |
11 | 11 |
12 #if defined(OS_WIN) | 12 #if defined(OS_WIN) |
13 WebKit::WebMouseEvent MakeUntranslatedWebMouseEventFromNativeEvent( | 13 WebKit::WebMouseEvent MakeUntranslatedWebMouseEventFromNativeEvent( |
14 base::NativeEvent native_event); | 14 base::NativeEvent native_event); |
15 WebKit::WebMouseWheelEvent MakeUntranslatedWebMouseWheelEventFromNativeEvent( | 15 WebKit::WebMouseWheelEvent MakeUntranslatedWebMouseWheelEventFromNativeEvent( |
16 base::NativeEvent native_event); | 16 base::NativeEvent native_event); |
17 WebKit::WebKeyboardEvent MakeWebKeyboardEventFromNativeEvent( | 17 WebKit::WebKeyboardEvent MakeWebKeyboardEventFromNativeEvent( |
18 base::NativeEvent native_event); | 18 base::NativeEvent native_event); |
19 WebKit::WebTouchPoint* UpdateWebTouchEventFromNativeEvent( | 19 WebKit::WebTouchPoint* UpdateWebTouchEventFromNativeEvent( |
20 base::NativeEvent native_event, WebKit::WebTouchEvent* web_event); | 20 base::NativeEvent native_event, WebKit::WebTouchEvent* web_event); |
21 #else | 21 #else |
22 WebKit::WebMouseEvent MakeWebMouseEventFromAuraEvent(aura::MouseEvent* event); | 22 WebKit::WebMouseEvent MakeWebMouseEventFromAuraEvent(aura::MouseEvent* event); |
23 WebKit::WebMouseWheelEvent MakeWebMouseWheelEventFromAuraEvent( | 23 WebKit::WebMouseWheelEvent MakeWebMouseWheelEventFromAuraEvent( |
24 aura::MouseEvent* event); | 24 aura::MouseEvent* event); |
| 25 WebKit::WebMouseWheelEvent MakeWebMouseWheelEventFromAuraEvent( |
| 26 aura::ScrollEvent* event); |
25 WebKit::WebKeyboardEvent MakeWebKeyboardEventFromAuraEvent( | 27 WebKit::WebKeyboardEvent MakeWebKeyboardEventFromAuraEvent( |
26 aura::KeyEvent* event); | 28 aura::KeyEvent* event); |
27 WebKit::WebTouchPoint* UpdateWebTouchEventFromAuraEvent( | 29 WebKit::WebTouchPoint* UpdateWebTouchEventFromAuraEvent( |
28 aura::TouchEvent* event, WebKit::WebTouchEvent* web_event); | 30 aura::TouchEvent* event, WebKit::WebTouchEvent* web_event); |
29 #endif | 31 #endif |
30 | 32 |
31 // General approach: | 33 // General approach: |
32 // | 34 // |
33 // aura::Event only carries a subset of possible event data provided to Aura by | 35 // aura::Event only carries a subset of possible event data provided to Aura by |
34 // the host platform. WebKit utilizes a larger subset of that information than | 36 // the host platform. WebKit utilizes a larger subset of that information than |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
89 webkit_event.windowY = webkit_event.y = event->y(); | 91 webkit_event.windowY = webkit_event.y = event->y(); |
90 | 92 |
91 const gfx::Point host_point = | 93 const gfx::Point host_point = |
92 ui::EventLocationFromNative(event->native_event()); | 94 ui::EventLocationFromNative(event->native_event()); |
93 webkit_event.globalX = host_point.x(); | 95 webkit_event.globalX = host_point.x(); |
94 webkit_event.globalY = host_point.y(); | 96 webkit_event.globalY = host_point.y(); |
95 | 97 |
96 return webkit_event; | 98 return webkit_event; |
97 } | 99 } |
98 | 100 |
| 101 WebKit::WebMouseWheelEvent MakeWebMouseWheelEvent(aura::ScrollEvent* event) { |
| 102 #if defined(OS_WIN) |
| 103 // Construct an untranslated event from the platform event data. |
| 104 WebKit::WebMouseWheelEvent webkit_event = |
| 105 MakeUntranslatedWebMouseWheelEventFromNativeEvent(event->native_event()); |
| 106 #else |
| 107 WebKit::WebMouseWheelEvent webkit_event = |
| 108 MakeWebMouseWheelEventFromAuraEvent(event); |
| 109 #endif |
| 110 |
| 111 // Replace the event's coordinate fields with translated position data from |
| 112 // |event|. |
| 113 webkit_event.windowX = webkit_event.x = event->x(); |
| 114 webkit_event.windowY = webkit_event.y = event->y(); |
| 115 |
| 116 const gfx::Point host_point = |
| 117 ui::EventLocationFromNative(event->native_event()); |
| 118 webkit_event.globalX = host_point.x(); |
| 119 webkit_event.globalY = host_point.y(); |
| 120 |
| 121 return webkit_event; |
| 122 } |
| 123 |
99 WebKit::WebKeyboardEvent MakeWebKeyboardEvent(aura::KeyEvent* event) { | 124 WebKit::WebKeyboardEvent MakeWebKeyboardEvent(aura::KeyEvent* event) { |
100 // Windows can figure out whether or not to construct a RawKeyDown or a Char | 125 // Windows can figure out whether or not to construct a RawKeyDown or a Char |
101 // WebInputEvent based on the type of message carried in | 126 // WebInputEvent based on the type of message carried in |
102 // event->native_event(). X11 is not so fortunate, there is no separate | 127 // event->native_event(). X11 is not so fortunate, there is no separate |
103 // translated event type, so DesktopHostLinux sends an extra KeyEvent with | 128 // translated event type, so DesktopHostLinux sends an extra KeyEvent with |
104 // is_char() == true. We need to pass the aura::KeyEvent to the X11 function | 129 // is_char() == true. We need to pass the aura::KeyEvent to the X11 function |
105 // to detect this case so the right event type can be constructed. | 130 // to detect this case so the right event type can be constructed. |
106 #if defined(OS_WIN) | 131 #if defined(OS_WIN) |
107 // Key events require no translation by the aura system. | 132 // Key events require no translation by the aura system. |
108 return MakeWebKeyboardEventFromNativeEvent(event->native_event()); | 133 return MakeWebKeyboardEventFromNativeEvent(event->native_event()); |
109 #else | 134 #else |
110 return MakeWebKeyboardEventFromAuraEvent(event); | 135 return MakeWebKeyboardEventFromAuraEvent(event); |
111 #endif | 136 #endif |
112 } | 137 } |
113 | 138 |
114 WebKit::WebTouchPoint* UpdateWebTouchEvent(aura::TouchEvent* event, | 139 WebKit::WebTouchPoint* UpdateWebTouchEvent(aura::TouchEvent* event, |
115 WebKit::WebTouchEvent* web_event) { | 140 WebKit::WebTouchEvent* web_event) { |
116 #if defined(OS_WIN) | 141 #if defined(OS_WIN) |
117 return UpdateWebTouchEventFromNativeEvent(event->native_event(), web_event); | 142 return UpdateWebTouchEventFromNativeEvent(event->native_event(), web_event); |
118 #else | 143 #else |
119 return UpdateWebTouchEventFromAuraEvent(event, web_event); | 144 return UpdateWebTouchEventFromAuraEvent(event, web_event); |
120 #endif | 145 #endif |
121 } | 146 } |
122 | 147 |
123 } // namespace content | 148 } // namespace content |
OLD | NEW |