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/ui_events_helper.h" | 7 #include "content/browser/renderer_host/ui_events_helper.h" |
8 #include "ui/aura/window.h" | 8 #include "ui/aura/window.h" |
9 #include "ui/events/event.h" | 9 #include "ui/events/event.h" |
10 #include "ui/events/event_utils.h" | 10 #include "ui/events/event_utils.h" |
11 | 11 |
12 namespace content { | 12 namespace content { |
13 | 13 |
14 #if defined(USE_X11) || defined(USE_OZONE) | 14 #if defined(USE_X11) || defined(USE_OZONE) |
15 // From third_party/WebKit/Source/web/gtk/WebInputEventFactory.cpp: | 15 // From third_party/WebKit/Source/web/gtk/WebInputEventFactory.cpp: |
16 WebKit::WebUChar GetControlCharacter(int windows_key_code, bool shift) { | 16 blink::WebUChar GetControlCharacter(int windows_key_code, bool shift) { |
17 if (windows_key_code >= ui::VKEY_A && | 17 if (windows_key_code >= ui::VKEY_A && |
18 windows_key_code <= ui::VKEY_Z) { | 18 windows_key_code <= ui::VKEY_Z) { |
19 // ctrl-A ~ ctrl-Z map to \x01 ~ \x1A | 19 // ctrl-A ~ ctrl-Z map to \x01 ~ \x1A |
20 return windows_key_code - ui::VKEY_A + 1; | 20 return windows_key_code - ui::VKEY_A + 1; |
21 } | 21 } |
22 if (shift) { | 22 if (shift) { |
23 // following graphics chars require shift key to input. | 23 // following graphics chars require shift key to input. |
24 switch (windows_key_code) { | 24 switch (windows_key_code) { |
25 // ctrl-@ maps to \x00 (Null byte) | 25 // ctrl-@ maps to \x00 (Null byte) |
26 case ui::VKEY_2: | 26 case ui::VKEY_2: |
(...skipping 24 matching lines...) Expand all Loading... |
51 return 0x0A; | 51 return 0x0A; |
52 // Returns 0 for all other keys to avoid inputting unexpected chars. | 52 // Returns 0 for all other keys to avoid inputting unexpected chars. |
53 default: | 53 default: |
54 break; | 54 break; |
55 } | 55 } |
56 } | 56 } |
57 return 0; | 57 return 0; |
58 } | 58 } |
59 #endif | 59 #endif |
60 #if defined(OS_WIN) | 60 #if defined(OS_WIN) |
61 WebKit::WebMouseEvent MakeUntranslatedWebMouseEventFromNativeEvent( | 61 blink::WebMouseEvent MakeUntranslatedWebMouseEventFromNativeEvent( |
62 base::NativeEvent native_event); | 62 base::NativeEvent native_event); |
63 WebKit::WebMouseWheelEvent MakeUntranslatedWebMouseWheelEventFromNativeEvent( | 63 blink::WebMouseWheelEvent MakeUntranslatedWebMouseWheelEventFromNativeEvent( |
64 base::NativeEvent native_event); | 64 base::NativeEvent native_event); |
65 WebKit::WebKeyboardEvent MakeWebKeyboardEventFromNativeEvent( | 65 blink::WebKeyboardEvent MakeWebKeyboardEventFromNativeEvent( |
66 base::NativeEvent native_event); | 66 base::NativeEvent native_event); |
67 WebKit::WebGestureEvent MakeWebGestureEventFromNativeEvent( | 67 blink::WebGestureEvent MakeWebGestureEventFromNativeEvent( |
68 base::NativeEvent native_event); | 68 base::NativeEvent native_event); |
69 #elif defined(USE_X11) | 69 #elif defined(USE_X11) |
70 WebKit::WebKeyboardEvent MakeWebKeyboardEventFromAuraEvent( | 70 blink::WebKeyboardEvent MakeWebKeyboardEventFromAuraEvent( |
71 ui::KeyEvent* event); | 71 ui::KeyEvent* event); |
72 #elif defined(USE_OZONE) | 72 #elif defined(USE_OZONE) |
73 WebKit::WebKeyboardEvent MakeWebKeyboardEventFromAuraEvent( | 73 blink::WebKeyboardEvent MakeWebKeyboardEventFromAuraEvent( |
74 ui::KeyEvent* event) { | 74 ui::KeyEvent* event) { |
75 base::NativeEvent native_event = event->native_event(); | 75 base::NativeEvent native_event = event->native_event(); |
76 ui::EventType type = ui::EventTypeFromNative(native_event); | 76 ui::EventType type = ui::EventTypeFromNative(native_event); |
77 WebKit::WebKeyboardEvent webkit_event; | 77 blink::WebKeyboardEvent webkit_event; |
78 | 78 |
79 webkit_event.timeStampSeconds = event->time_stamp().InSecondsF(); | 79 webkit_event.timeStampSeconds = event->time_stamp().InSecondsF(); |
80 webkit_event.modifiers = EventFlagsToWebEventModifiers(event->flags()); | 80 webkit_event.modifiers = EventFlagsToWebEventModifiers(event->flags()); |
81 | 81 |
82 switch (type) { | 82 switch (type) { |
83 case ui::ET_KEY_PRESSED: | 83 case ui::ET_KEY_PRESSED: |
84 webkit_event.type = event->is_char() ? WebKit::WebInputEvent::Char : | 84 webkit_event.type = event->is_char() ? blink::WebInputEvent::Char : |
85 WebKit::WebInputEvent::RawKeyDown; | 85 blink::WebInputEvent::RawKeyDown; |
86 break; | 86 break; |
87 case ui::ET_KEY_RELEASED: | 87 case ui::ET_KEY_RELEASED: |
88 webkit_event.type = WebKit::WebInputEvent::KeyUp; | 88 webkit_event.type = blink::WebInputEvent::KeyUp; |
89 break; | 89 break; |
90 default: | 90 default: |
91 NOTREACHED(); | 91 NOTREACHED(); |
92 } | 92 } |
93 | 93 |
94 if (webkit_event.modifiers & WebKit::WebInputEvent::AltKey) | 94 if (webkit_event.modifiers & blink::WebInputEvent::AltKey) |
95 webkit_event.isSystemKey = true; | 95 webkit_event.isSystemKey = true; |
96 | 96 |
97 wchar_t character = ui::KeyboardCodeFromNative(native_event); | 97 wchar_t character = ui::KeyboardCodeFromNative(native_event); |
98 webkit_event.windowsKeyCode = character; | 98 webkit_event.windowsKeyCode = character; |
99 webkit_event.nativeKeyCode = character; | 99 webkit_event.nativeKeyCode = character; |
100 | 100 |
101 if (webkit_event.windowsKeyCode == ui::VKEY_RETURN) | 101 if (webkit_event.windowsKeyCode == ui::VKEY_RETURN) |
102 webkit_event.unmodifiedText[0] = '\r'; | 102 webkit_event.unmodifiedText[0] = '\r'; |
103 else | 103 else |
104 webkit_event.unmodifiedText[0] = character; | 104 webkit_event.unmodifiedText[0] = character; |
105 | 105 |
106 if (webkit_event.modifiers & WebKit::WebInputEvent::ControlKey) { | 106 if (webkit_event.modifiers & blink::WebInputEvent::ControlKey) { |
107 webkit_event.text[0] = | 107 webkit_event.text[0] = |
108 GetControlCharacter( | 108 GetControlCharacter( |
109 webkit_event.windowsKeyCode, | 109 webkit_event.windowsKeyCode, |
110 webkit_event.modifiers & WebKit::WebInputEvent::ShiftKey); | 110 webkit_event.modifiers & blink::WebInputEvent::ShiftKey); |
111 } else { | 111 } else { |
112 webkit_event.text[0] = webkit_event.unmodifiedText[0]; | 112 webkit_event.text[0] = webkit_event.unmodifiedText[0]; |
113 } | 113 } |
114 | 114 |
115 webkit_event.setKeyIdentifierFromWindowsKeyCode(); | 115 webkit_event.setKeyIdentifierFromWindowsKeyCode(); |
116 | 116 |
117 return webkit_event; | 117 return webkit_event; |
118 } | 118 } |
119 #endif | 119 #endif |
120 #if defined(USE_X11) || defined(USE_OZONE) | 120 #if defined(USE_X11) || defined(USE_OZONE) |
121 WebKit::WebMouseWheelEvent MakeWebMouseWheelEventFromAuraEvent( | 121 blink::WebMouseWheelEvent MakeWebMouseWheelEventFromAuraEvent( |
122 ui::ScrollEvent* event) { | 122 ui::ScrollEvent* event) { |
123 WebKit::WebMouseWheelEvent webkit_event; | 123 blink::WebMouseWheelEvent webkit_event; |
124 | 124 |
125 webkit_event.type = WebKit::WebInputEvent::MouseWheel; | 125 webkit_event.type = blink::WebInputEvent::MouseWheel; |
126 webkit_event.button = WebKit::WebMouseEvent::ButtonNone; | 126 webkit_event.button = blink::WebMouseEvent::ButtonNone; |
127 webkit_event.modifiers = EventFlagsToWebEventModifiers(event->flags()); | 127 webkit_event.modifiers = EventFlagsToWebEventModifiers(event->flags()); |
128 webkit_event.timeStampSeconds = event->time_stamp().InSecondsF(); | 128 webkit_event.timeStampSeconds = event->time_stamp().InSecondsF(); |
129 webkit_event.hasPreciseScrollingDeltas = true; | 129 webkit_event.hasPreciseScrollingDeltas = true; |
130 webkit_event.deltaX = event->x_offset(); | 130 webkit_event.deltaX = event->x_offset(); |
131 if (event->x_offset_ordinal() != 0.f && event->x_offset() != 0.f) { | 131 if (event->x_offset_ordinal() != 0.f && event->x_offset() != 0.f) { |
132 webkit_event.accelerationRatioX = | 132 webkit_event.accelerationRatioX = |
133 event->x_offset_ordinal() / event->x_offset(); | 133 event->x_offset_ordinal() / event->x_offset(); |
134 } | 134 } |
135 webkit_event.wheelTicksX = webkit_event.deltaX / kPixelsPerTick; | 135 webkit_event.wheelTicksX = webkit_event.deltaX / kPixelsPerTick; |
136 webkit_event.deltaY = event->y_offset(); | 136 webkit_event.deltaY = event->y_offset(); |
137 webkit_event.wheelTicksY = webkit_event.deltaY / kPixelsPerTick; | 137 webkit_event.wheelTicksY = webkit_event.deltaY / kPixelsPerTick; |
138 if (event->y_offset_ordinal() != 0.f && event->y_offset() != 0.f) { | 138 if (event->y_offset_ordinal() != 0.f && event->y_offset() != 0.f) { |
139 webkit_event.accelerationRatioY = | 139 webkit_event.accelerationRatioY = |
140 event->y_offset_ordinal() / event->y_offset(); | 140 event->y_offset_ordinal() / event->y_offset(); |
141 } | 141 } |
142 return webkit_event; | 142 return webkit_event; |
143 } | 143 } |
144 | 144 |
145 WebKit::WebGestureEvent MakeWebGestureEventFromAuraEvent( | 145 blink::WebGestureEvent MakeWebGestureEventFromAuraEvent( |
146 ui::ScrollEvent* event) { | 146 ui::ScrollEvent* event) { |
147 WebKit::WebGestureEvent webkit_event; | 147 blink::WebGestureEvent webkit_event; |
148 | 148 |
149 switch (event->type()) { | 149 switch (event->type()) { |
150 case ui::ET_SCROLL_FLING_START: | 150 case ui::ET_SCROLL_FLING_START: |
151 webkit_event.type = WebKit::WebInputEvent::GestureFlingStart; | 151 webkit_event.type = blink::WebInputEvent::GestureFlingStart; |
152 webkit_event.data.flingStart.velocityX = event->x_offset(); | 152 webkit_event.data.flingStart.velocityX = event->x_offset(); |
153 webkit_event.data.flingStart.velocityY = event->y_offset(); | 153 webkit_event.data.flingStart.velocityY = event->y_offset(); |
154 break; | 154 break; |
155 case ui::ET_SCROLL_FLING_CANCEL: | 155 case ui::ET_SCROLL_FLING_CANCEL: |
156 webkit_event.type = WebKit::WebInputEvent::GestureFlingCancel; | 156 webkit_event.type = blink::WebInputEvent::GestureFlingCancel; |
157 break; | 157 break; |
158 case ui::ET_SCROLL: | 158 case ui::ET_SCROLL: |
159 NOTREACHED() << "Invalid gesture type: " << event->type(); | 159 NOTREACHED() << "Invalid gesture type: " << event->type(); |
160 break; | 160 break; |
161 default: | 161 default: |
162 NOTREACHED() << "Unknown gesture type: " << event->type(); | 162 NOTREACHED() << "Unknown gesture type: " << event->type(); |
163 } | 163 } |
164 | 164 |
165 webkit_event.sourceDevice = WebKit::WebGestureEvent::Touchpad; | 165 webkit_event.sourceDevice = blink::WebGestureEvent::Touchpad; |
166 webkit_event.modifiers = EventFlagsToWebEventModifiers(event->flags()); | 166 webkit_event.modifiers = EventFlagsToWebEventModifiers(event->flags()); |
167 webkit_event.timeStampSeconds = event->time_stamp().InSecondsF(); | 167 webkit_event.timeStampSeconds = event->time_stamp().InSecondsF(); |
168 return webkit_event; | 168 return webkit_event; |
169 } | 169 } |
170 | 170 |
171 #endif | 171 #endif |
172 | 172 |
173 WebKit::WebMouseEvent MakeWebMouseEventFromAuraEvent( | 173 blink::WebMouseEvent MakeWebMouseEventFromAuraEvent( |
174 ui::MouseEvent* event); | 174 ui::MouseEvent* event); |
175 WebKit::WebMouseWheelEvent MakeWebMouseWheelEventFromAuraEvent( | 175 blink::WebMouseWheelEvent MakeWebMouseWheelEventFromAuraEvent( |
176 ui::MouseWheelEvent* event); | 176 ui::MouseWheelEvent* event); |
177 | 177 |
178 // General approach: | 178 // General approach: |
179 // | 179 // |
180 // ui::Event only carries a subset of possible event data provided to Aura by | 180 // ui::Event only carries a subset of possible event data provided to Aura by |
181 // the host platform. WebKit utilizes a larger subset of that information than | 181 // the host platform. WebKit utilizes a larger subset of that information than |
182 // Aura itself. WebKit includes some built in cracking functionality that we | 182 // Aura itself. WebKit includes some built in cracking functionality that we |
183 // rely on to obtain this information cleanly and consistently. | 183 // rely on to obtain this information cleanly and consistently. |
184 // | 184 // |
185 // The only place where an ui::Event's data differs from what the underlying | 185 // The only place where an ui::Event's data differs from what the underlying |
186 // base::NativeEvent would provide is position data, since we would like to | 186 // base::NativeEvent would provide is position data, since we would like to |
187 // provide coordinates relative to the aura::Window that is hosting the | 187 // provide coordinates relative to the aura::Window that is hosting the |
188 // renderer, not the top level platform window. | 188 // renderer, not the top level platform window. |
189 // | 189 // |
190 // The approach is to fully construct a WebKit::WebInputEvent from the | 190 // The approach is to fully construct a blink::WebInputEvent from the |
191 // ui::Event's base::NativeEvent, and then replace the coordinate fields with | 191 // ui::Event's base::NativeEvent, and then replace the coordinate fields with |
192 // the translated values from the ui::Event. | 192 // the translated values from the ui::Event. |
193 // | 193 // |
194 // The exception is mouse events on linux. The ui::MouseEvent contains enough | 194 // The exception is mouse events on linux. The ui::MouseEvent contains enough |
195 // necessary information to construct a WebMouseEvent. So instead of extracting | 195 // necessary information to construct a WebMouseEvent. So instead of extracting |
196 // the information from the XEvent, which can be tricky when supporting both | 196 // the information from the XEvent, which can be tricky when supporting both |
197 // XInput2 and XInput, the WebMouseEvent is constructed from the | 197 // XInput2 and XInput, the WebMouseEvent is constructed from the |
198 // ui::MouseEvent. This will not be necessary once only XInput2 is supported. | 198 // ui::MouseEvent. This will not be necessary once only XInput2 is supported. |
199 // | 199 // |
200 | 200 |
201 WebKit::WebMouseEvent MakeWebMouseEvent(ui::MouseEvent* event) { | 201 blink::WebMouseEvent MakeWebMouseEvent(ui::MouseEvent* event) { |
202 // Construct an untranslated event from the platform event data. | 202 // Construct an untranslated event from the platform event data. |
203 WebKit::WebMouseEvent webkit_event = | 203 blink::WebMouseEvent webkit_event = |
204 #if defined(OS_WIN) | 204 #if defined(OS_WIN) |
205 // On Windows we have WM_ events comming from desktop and pure aura | 205 // On Windows we have WM_ events comming from desktop and pure aura |
206 // events comming from metro mode. | 206 // events comming from metro mode. |
207 event->native_event().message ? | 207 event->native_event().message ? |
208 MakeUntranslatedWebMouseEventFromNativeEvent(event->native_event()) : | 208 MakeUntranslatedWebMouseEventFromNativeEvent(event->native_event()) : |
209 MakeWebMouseEventFromAuraEvent(event); | 209 MakeWebMouseEventFromAuraEvent(event); |
210 #else | 210 #else |
211 MakeWebMouseEventFromAuraEvent(event); | 211 MakeWebMouseEventFromAuraEvent(event); |
212 #endif | 212 #endif |
213 // Replace the event's coordinate fields with translated position data from | 213 // Replace the event's coordinate fields with translated position data from |
214 // |event|. | 214 // |event|. |
215 webkit_event.windowX = webkit_event.x = event->x(); | 215 webkit_event.windowX = webkit_event.x = event->x(); |
216 webkit_event.windowY = webkit_event.y = event->y(); | 216 webkit_event.windowY = webkit_event.y = event->y(); |
217 | 217 |
218 #if defined(OS_WIN) | 218 #if defined(OS_WIN) |
219 if (event->native_event().message) | 219 if (event->native_event().message) |
220 return webkit_event; | 220 return webkit_event; |
221 #endif | 221 #endif |
222 const gfx::Point root_point = event->root_location(); | 222 const gfx::Point root_point = event->root_location(); |
223 webkit_event.globalX = root_point.x(); | 223 webkit_event.globalX = root_point.x(); |
224 webkit_event.globalY = root_point.y(); | 224 webkit_event.globalY = root_point.y(); |
225 | 225 |
226 return webkit_event; | 226 return webkit_event; |
227 } | 227 } |
228 | 228 |
229 WebKit::WebMouseWheelEvent MakeWebMouseWheelEvent(ui::MouseWheelEvent* event) { | 229 blink::WebMouseWheelEvent MakeWebMouseWheelEvent(ui::MouseWheelEvent* event) { |
230 #if defined(OS_WIN) | 230 #if defined(OS_WIN) |
231 // Construct an untranslated event from the platform event data. | 231 // Construct an untranslated event from the platform event data. |
232 WebKit::WebMouseWheelEvent webkit_event = event->native_event().message ? | 232 blink::WebMouseWheelEvent webkit_event = event->native_event().message ? |
233 MakeUntranslatedWebMouseWheelEventFromNativeEvent(event->native_event()) : | 233 MakeUntranslatedWebMouseWheelEventFromNativeEvent(event->native_event()) : |
234 MakeWebMouseWheelEventFromAuraEvent(event); | 234 MakeWebMouseWheelEventFromAuraEvent(event); |
235 #else | 235 #else |
236 WebKit::WebMouseWheelEvent webkit_event = | 236 blink::WebMouseWheelEvent webkit_event = |
237 MakeWebMouseWheelEventFromAuraEvent(event); | 237 MakeWebMouseWheelEventFromAuraEvent(event); |
238 #endif | 238 #endif |
239 | 239 |
240 // Replace the event's coordinate fields with translated position data from | 240 // Replace the event's coordinate fields with translated position data from |
241 // |event|. | 241 // |event|. |
242 webkit_event.windowX = webkit_event.x = event->x(); | 242 webkit_event.windowX = webkit_event.x = event->x(); |
243 webkit_event.windowY = webkit_event.y = event->y(); | 243 webkit_event.windowY = webkit_event.y = event->y(); |
244 | 244 |
245 const gfx::Point root_point = event->root_location(); | 245 const gfx::Point root_point = event->root_location(); |
246 webkit_event.globalX = root_point.x(); | 246 webkit_event.globalX = root_point.x(); |
247 webkit_event.globalY = root_point.y(); | 247 webkit_event.globalY = root_point.y(); |
248 | 248 |
249 return webkit_event; | 249 return webkit_event; |
250 } | 250 } |
251 | 251 |
252 WebKit::WebMouseWheelEvent MakeWebMouseWheelEvent(ui::ScrollEvent* event) { | 252 blink::WebMouseWheelEvent MakeWebMouseWheelEvent(ui::ScrollEvent* event) { |
253 #if defined(OS_WIN) | 253 #if defined(OS_WIN) |
254 // Construct an untranslated event from the platform event data. | 254 // Construct an untranslated event from the platform event data. |
255 WebKit::WebMouseWheelEvent webkit_event = | 255 blink::WebMouseWheelEvent webkit_event = |
256 MakeUntranslatedWebMouseWheelEventFromNativeEvent(event->native_event()); | 256 MakeUntranslatedWebMouseWheelEventFromNativeEvent(event->native_event()); |
257 #else | 257 #else |
258 WebKit::WebMouseWheelEvent webkit_event = | 258 blink::WebMouseWheelEvent webkit_event = |
259 MakeWebMouseWheelEventFromAuraEvent(event); | 259 MakeWebMouseWheelEventFromAuraEvent(event); |
260 #endif | 260 #endif |
261 | 261 |
262 // Replace the event's coordinate fields with translated position data from | 262 // Replace the event's coordinate fields with translated position data from |
263 // |event|. | 263 // |event|. |
264 webkit_event.windowX = webkit_event.x = event->x(); | 264 webkit_event.windowX = webkit_event.x = event->x(); |
265 webkit_event.windowY = webkit_event.y = event->y(); | 265 webkit_event.windowY = webkit_event.y = event->y(); |
266 | 266 |
267 const gfx::Point root_point = event->root_location(); | 267 const gfx::Point root_point = event->root_location(); |
268 webkit_event.globalX = root_point.x(); | 268 webkit_event.globalX = root_point.x(); |
269 webkit_event.globalY = root_point.y(); | 269 webkit_event.globalY = root_point.y(); |
270 | 270 |
271 return webkit_event; | 271 return webkit_event; |
272 } | 272 } |
273 | 273 |
274 WebKit::WebKeyboardEvent MakeWebKeyboardEvent(ui::KeyEvent* event) { | 274 blink::WebKeyboardEvent MakeWebKeyboardEvent(ui::KeyEvent* event) { |
275 // Windows can figure out whether or not to construct a RawKeyDown or a Char | 275 // Windows can figure out whether or not to construct a RawKeyDown or a Char |
276 // WebInputEvent based on the type of message carried in | 276 // WebInputEvent based on the type of message carried in |
277 // event->native_event(). X11 is not so fortunate, there is no separate | 277 // event->native_event(). X11 is not so fortunate, there is no separate |
278 // translated event type, so DesktopHostLinux sends an extra KeyEvent with | 278 // translated event type, so DesktopHostLinux sends an extra KeyEvent with |
279 // is_char() == true. We need to pass the ui::KeyEvent to the X11 function | 279 // is_char() == true. We need to pass the ui::KeyEvent to the X11 function |
280 // to detect this case so the right event type can be constructed. | 280 // to detect this case so the right event type can be constructed. |
281 #if defined(OS_WIN) | 281 #if defined(OS_WIN) |
282 // Key events require no translation by the aura system. | 282 // Key events require no translation by the aura system. |
283 return MakeWebKeyboardEventFromNativeEvent(event->native_event()); | 283 return MakeWebKeyboardEventFromNativeEvent(event->native_event()); |
284 #else | 284 #else |
285 return MakeWebKeyboardEventFromAuraEvent(event); | 285 return MakeWebKeyboardEventFromAuraEvent(event); |
286 #endif | 286 #endif |
287 } | 287 } |
288 | 288 |
289 WebKit::WebGestureEvent MakeWebGestureEvent(ui::GestureEvent* event) { | 289 blink::WebGestureEvent MakeWebGestureEvent(ui::GestureEvent* event) { |
290 WebKit::WebGestureEvent gesture_event; | 290 blink::WebGestureEvent gesture_event; |
291 #if defined(OS_WIN) | 291 #if defined(OS_WIN) |
292 if (event->HasNativeEvent()) | 292 if (event->HasNativeEvent()) |
293 gesture_event = MakeWebGestureEventFromNativeEvent(event->native_event()); | 293 gesture_event = MakeWebGestureEventFromNativeEvent(event->native_event()); |
294 else | 294 else |
295 gesture_event = MakeWebGestureEventFromUIEvent(*event); | 295 gesture_event = MakeWebGestureEventFromUIEvent(*event); |
296 #else | 296 #else |
297 gesture_event = MakeWebGestureEventFromUIEvent(*event); | 297 gesture_event = MakeWebGestureEventFromUIEvent(*event); |
298 #endif | 298 #endif |
299 | 299 |
300 gesture_event.x = event->x(); | 300 gesture_event.x = event->x(); |
301 gesture_event.y = event->y(); | 301 gesture_event.y = event->y(); |
302 | 302 |
303 const gfx::Point root_point = event->root_location(); | 303 const gfx::Point root_point = event->root_location(); |
304 gesture_event.globalX = root_point.x(); | 304 gesture_event.globalX = root_point.x(); |
305 gesture_event.globalY = root_point.y(); | 305 gesture_event.globalY = root_point.y(); |
306 | 306 |
307 return gesture_event; | 307 return gesture_event; |
308 } | 308 } |
309 | 309 |
310 WebKit::WebGestureEvent MakeWebGestureEvent(ui::ScrollEvent* event) { | 310 blink::WebGestureEvent MakeWebGestureEvent(ui::ScrollEvent* event) { |
311 WebKit::WebGestureEvent gesture_event; | 311 blink::WebGestureEvent gesture_event; |
312 | 312 |
313 #if defined(OS_WIN) | 313 #if defined(OS_WIN) |
314 gesture_event = MakeWebGestureEventFromNativeEvent(event->native_event()); | 314 gesture_event = MakeWebGestureEventFromNativeEvent(event->native_event()); |
315 #else | 315 #else |
316 gesture_event = MakeWebGestureEventFromAuraEvent(event); | 316 gesture_event = MakeWebGestureEventFromAuraEvent(event); |
317 #endif | 317 #endif |
318 | 318 |
319 gesture_event.x = event->x(); | 319 gesture_event.x = event->x(); |
320 gesture_event.y = event->y(); | 320 gesture_event.y = event->y(); |
321 | 321 |
322 const gfx::Point root_point = event->root_location(); | 322 const gfx::Point root_point = event->root_location(); |
323 gesture_event.globalX = root_point.x(); | 323 gesture_event.globalX = root_point.x(); |
324 gesture_event.globalY = root_point.y(); | 324 gesture_event.globalY = root_point.y(); |
325 | 325 |
326 return gesture_event; | 326 return gesture_event; |
327 } | 327 } |
328 | 328 |
329 WebKit::WebGestureEvent MakeWebGestureEventFlingCancel() { | 329 blink::WebGestureEvent MakeWebGestureEventFlingCancel() { |
330 WebKit::WebGestureEvent gesture_event; | 330 blink::WebGestureEvent gesture_event; |
331 | 331 |
332 // All other fields are ignored on a GestureFlingCancel event. | 332 // All other fields are ignored on a GestureFlingCancel event. |
333 gesture_event.type = WebKit::WebInputEvent::GestureFlingCancel; | 333 gesture_event.type = blink::WebInputEvent::GestureFlingCancel; |
334 gesture_event.sourceDevice = WebKit::WebGestureEvent::Touchpad; | 334 gesture_event.sourceDevice = blink::WebGestureEvent::Touchpad; |
335 return gesture_event; | 335 return gesture_event; |
336 } | 336 } |
337 | 337 |
338 WebKit::WebMouseEvent MakeWebMouseEventFromAuraEvent(ui::MouseEvent* event) { | 338 blink::WebMouseEvent MakeWebMouseEventFromAuraEvent(ui::MouseEvent* event) { |
339 WebKit::WebMouseEvent webkit_event; | 339 blink::WebMouseEvent webkit_event; |
340 | 340 |
341 webkit_event.modifiers = EventFlagsToWebEventModifiers(event->flags()); | 341 webkit_event.modifiers = EventFlagsToWebEventModifiers(event->flags()); |
342 webkit_event.timeStampSeconds = event->time_stamp().InSecondsF(); | 342 webkit_event.timeStampSeconds = event->time_stamp().InSecondsF(); |
343 | 343 |
344 webkit_event.button = WebKit::WebMouseEvent::ButtonNone; | 344 webkit_event.button = blink::WebMouseEvent::ButtonNone; |
345 if (event->flags() & ui::EF_LEFT_MOUSE_BUTTON) | 345 if (event->flags() & ui::EF_LEFT_MOUSE_BUTTON) |
346 webkit_event.button = WebKit::WebMouseEvent::ButtonLeft; | 346 webkit_event.button = blink::WebMouseEvent::ButtonLeft; |
347 if (event->flags() & ui::EF_MIDDLE_MOUSE_BUTTON) | 347 if (event->flags() & ui::EF_MIDDLE_MOUSE_BUTTON) |
348 webkit_event.button = WebKit::WebMouseEvent::ButtonMiddle; | 348 webkit_event.button = blink::WebMouseEvent::ButtonMiddle; |
349 if (event->flags() & ui::EF_RIGHT_MOUSE_BUTTON) | 349 if (event->flags() & ui::EF_RIGHT_MOUSE_BUTTON) |
350 webkit_event.button = WebKit::WebMouseEvent::ButtonRight; | 350 webkit_event.button = blink::WebMouseEvent::ButtonRight; |
351 | 351 |
352 switch (event->type()) { | 352 switch (event->type()) { |
353 case ui::ET_MOUSE_PRESSED: | 353 case ui::ET_MOUSE_PRESSED: |
354 webkit_event.type = WebKit::WebInputEvent::MouseDown; | 354 webkit_event.type = blink::WebInputEvent::MouseDown; |
355 webkit_event.clickCount = event->GetClickCount(); | 355 webkit_event.clickCount = event->GetClickCount(); |
356 break; | 356 break; |
357 case ui::ET_MOUSE_RELEASED: | 357 case ui::ET_MOUSE_RELEASED: |
358 webkit_event.type = WebKit::WebInputEvent::MouseUp; | 358 webkit_event.type = blink::WebInputEvent::MouseUp; |
359 webkit_event.clickCount = event->GetClickCount(); | 359 webkit_event.clickCount = event->GetClickCount(); |
360 break; | 360 break; |
361 case ui::ET_MOUSE_ENTERED: | 361 case ui::ET_MOUSE_ENTERED: |
362 case ui::ET_MOUSE_EXITED: | 362 case ui::ET_MOUSE_EXITED: |
363 case ui::ET_MOUSE_MOVED: | 363 case ui::ET_MOUSE_MOVED: |
364 case ui::ET_MOUSE_DRAGGED: | 364 case ui::ET_MOUSE_DRAGGED: |
365 webkit_event.type = WebKit::WebInputEvent::MouseMove; | 365 webkit_event.type = blink::WebInputEvent::MouseMove; |
366 break; | 366 break; |
367 default: | 367 default: |
368 NOTIMPLEMENTED() << "Received unexpected event: " << event->type(); | 368 NOTIMPLEMENTED() << "Received unexpected event: " << event->type(); |
369 break; | 369 break; |
370 } | 370 } |
371 | 371 |
372 return webkit_event; | 372 return webkit_event; |
373 } | 373 } |
374 | 374 |
375 WebKit::WebMouseWheelEvent MakeWebMouseWheelEventFromAuraEvent( | 375 blink::WebMouseWheelEvent MakeWebMouseWheelEventFromAuraEvent( |
376 ui::MouseWheelEvent* event) { | 376 ui::MouseWheelEvent* event) { |
377 WebKit::WebMouseWheelEvent webkit_event; | 377 blink::WebMouseWheelEvent webkit_event; |
378 | 378 |
379 webkit_event.type = WebKit::WebInputEvent::MouseWheel; | 379 webkit_event.type = blink::WebInputEvent::MouseWheel; |
380 webkit_event.button = WebKit::WebMouseEvent::ButtonNone; | 380 webkit_event.button = blink::WebMouseEvent::ButtonNone; |
381 webkit_event.modifiers = EventFlagsToWebEventModifiers(event->flags()); | 381 webkit_event.modifiers = EventFlagsToWebEventModifiers(event->flags()); |
382 webkit_event.timeStampSeconds = event->time_stamp().InSecondsF(); | 382 webkit_event.timeStampSeconds = event->time_stamp().InSecondsF(); |
383 webkit_event.deltaX = event->x_offset(); | 383 webkit_event.deltaX = event->x_offset(); |
384 webkit_event.deltaY = event->y_offset(); | 384 webkit_event.deltaY = event->y_offset(); |
385 webkit_event.wheelTicksX = webkit_event.deltaX / kPixelsPerTick; | 385 webkit_event.wheelTicksX = webkit_event.deltaX / kPixelsPerTick; |
386 webkit_event.wheelTicksY = webkit_event.deltaY / kPixelsPerTick; | 386 webkit_event.wheelTicksY = webkit_event.deltaY / kPixelsPerTick; |
387 | 387 |
388 return webkit_event; | 388 return webkit_event; |
389 } | 389 } |
390 | 390 |
391 } // namespace content | 391 } // namespace content |
OLD | NEW |