Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(240)

Side by Side Diff: content/browser/renderer_host/web_input_event_aura.cc

Issue 479873002: Removing X11 native_event uses for key events. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Remove web_input_event_aurax11.cc from Android license whitelist. Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 #if defined(USE_OZONE) 12 #if defined(USE_OZONE)
13 #include "ui/events/keycodes/keyboard_code_conversion.h" 13 #include "ui/events/keycodes/keyboard_code_conversion.h"
14 #endif 14 #endif
15 15
16 namespace content { 16 namespace content {
17 17
18 #if defined(OS_WIN) 18 #if defined(OS_WIN)
19 blink::WebMouseEvent MakeUntranslatedWebMouseEventFromNativeEvent( 19 blink::WebMouseEvent MakeUntranslatedWebMouseEventFromNativeEvent(
20 const base::NativeEvent& native_event); 20 const base::NativeEvent& native_event);
21 blink::WebMouseWheelEvent MakeUntranslatedWebMouseWheelEventFromNativeEvent( 21 blink::WebMouseWheelEvent MakeUntranslatedWebMouseWheelEventFromNativeEvent(
22 const base::NativeEvent& native_event); 22 const base::NativeEvent& native_event);
23 blink::WebKeyboardEvent MakeWebKeyboardEventFromNativeEvent( 23 blink::WebKeyboardEvent MakeWebKeyboardEventFromNativeEvent(
24 const base::NativeEvent& native_event); 24 const base::NativeEvent& native_event);
25 blink::WebGestureEvent MakeWebGestureEventFromNativeEvent( 25 blink::WebGestureEvent MakeWebGestureEventFromNativeEvent(
26 const base::NativeEvent& native_event); 26 const base::NativeEvent& native_event);
27 #elif defined(USE_X11) 27 #endif
28 blink::WebKeyboardEvent MakeWebKeyboardEventFromAuraEvent( 28 #if defined(USE_X11) || defined(USE_OZONE)
29 ui::KeyEvent* event);
30 #elif defined(USE_OZONE)
31 blink::WebKeyboardEvent MakeWebKeyboardEventFromAuraEvent( 29 blink::WebKeyboardEvent MakeWebKeyboardEventFromAuraEvent(
32 ui::KeyEvent* event) { 30 ui::KeyEvent* event) {
33 const base::NativeEvent& native_event = event->native_event();
34 ui::EventType type = ui::EventTypeFromNative(native_event);
35 blink::WebKeyboardEvent webkit_event; 31 blink::WebKeyboardEvent webkit_event;
36 32
37 webkit_event.timeStampSeconds = event->time_stamp().InSecondsF(); 33 webkit_event.timeStampSeconds = event->time_stamp().InSecondsF();
38 webkit_event.modifiers = EventFlagsToWebEventModifiers(event->flags()); 34 webkit_event.modifiers = EventFlagsToWebEventModifiers(event->flags());
39 35
40 switch (type) { 36 switch (event->type()) {
41 case ui::ET_KEY_PRESSED: 37 case ui::ET_KEY_PRESSED:
42 webkit_event.type = event->is_char() ? blink::WebInputEvent::Char : 38 webkit_event.type = event->is_char() ? blink::WebInputEvent::Char :
43 blink::WebInputEvent::RawKeyDown; 39 blink::WebInputEvent::RawKeyDown;
44 break; 40 break;
45 case ui::ET_KEY_RELEASED: 41 case ui::ET_KEY_RELEASED:
46 webkit_event.type = blink::WebInputEvent::KeyUp; 42 webkit_event.type = blink::WebInputEvent::KeyUp;
47 break; 43 break;
48 default: 44 default:
49 NOTREACHED(); 45 NOTREACHED();
50 } 46 }
51 47
52 if (webkit_event.modifiers & blink::WebInputEvent::AltKey) 48 if (webkit_event.modifiers & blink::WebInputEvent::AltKey)
53 webkit_event.isSystemKey = true; 49 webkit_event.isSystemKey = true;
54 50
55 wchar_t character = ui::KeyboardCodeFromNative(native_event); 51 webkit_event.windowsKeyCode = event->GetLocatedWindowsKeyboardCode();
56 webkit_event.windowsKeyCode = character; 52 webkit_event.nativeKeyCode = event->platform_keycode();
57 webkit_event.nativeKeyCode = character; 53 webkit_event.unmodifiedText[0] = event->GetUnmodifiedText();
58 54 webkit_event.text[0] = event->GetText();
59 if (webkit_event.windowsKeyCode == ui::VKEY_RETURN)
60 webkit_event.unmodifiedText[0] = '\r';
61 else
62 webkit_event.unmodifiedText[0] = ui::GetCharacterFromKeyCode(
63 ui::KeyboardCodeFromNative(native_event),
64 ui::EventFlagsFromNative(native_event));
65
66 if (webkit_event.modifiers & blink::WebInputEvent::ControlKey) {
67 webkit_event.text[0] = ui::GetControlCharacterForKeycode(
68 webkit_event.windowsKeyCode,
69 webkit_event.modifiers & blink::WebInputEvent::ShiftKey);
70 } else {
71 webkit_event.text[0] = webkit_event.unmodifiedText[0];
72 }
73 55
74 webkit_event.setKeyIdentifierFromWindowsKeyCode(); 56 webkit_event.setKeyIdentifierFromWindowsKeyCode();
75 57
76 return webkit_event; 58 return webkit_event;
77 } 59 }
78 #endif 60
79 #if defined(USE_X11) || defined(USE_OZONE)
80 blink::WebMouseWheelEvent MakeWebMouseWheelEventFromAuraEvent( 61 blink::WebMouseWheelEvent MakeWebMouseWheelEventFromAuraEvent(
81 ui::ScrollEvent* event) { 62 ui::ScrollEvent* event) {
82 blink::WebMouseWheelEvent webkit_event; 63 blink::WebMouseWheelEvent webkit_event;
83 64
84 webkit_event.type = blink::WebInputEvent::MouseWheel; 65 webkit_event.type = blink::WebInputEvent::MouseWheel;
85 webkit_event.button = blink::WebMouseEvent::ButtonNone; 66 webkit_event.button = blink::WebMouseEvent::ButtonNone;
86 webkit_event.modifiers = EventFlagsToWebEventModifiers(event->flags()); 67 webkit_event.modifiers = EventFlagsToWebEventModifiers(event->flags());
87 webkit_event.timeStampSeconds = event->time_stamp().InSecondsF(); 68 webkit_event.timeStampSeconds = event->time_stamp().InSecondsF();
88 webkit_event.hasPreciseScrollingDeltas = true; 69 webkit_event.hasPreciseScrollingDeltas = true;
89 70
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after
233 webkit_event.windowY = webkit_event.y = event->y(); 214 webkit_event.windowY = webkit_event.y = event->y();
234 215
235 const gfx::Point root_point = event->root_location(); 216 const gfx::Point root_point = event->root_location();
236 webkit_event.globalX = root_point.x(); 217 webkit_event.globalX = root_point.x();
237 webkit_event.globalY = root_point.y(); 218 webkit_event.globalY = root_point.y();
238 219
239 return webkit_event; 220 return webkit_event;
240 } 221 }
241 222
242 blink::WebKeyboardEvent MakeWebKeyboardEvent(ui::KeyEvent* event) { 223 blink::WebKeyboardEvent MakeWebKeyboardEvent(ui::KeyEvent* event) {
243 if (!event->HasNativeEvent())
244 return blink::WebKeyboardEvent();
245
246 // Windows can figure out whether or not to construct a RawKeyDown or a Char 224 // Windows can figure out whether or not to construct a RawKeyDown or a Char
247 // WebInputEvent based on the type of message carried in 225 // WebInputEvent based on the type of message carried in
248 // event->native_event(). X11 is not so fortunate, there is no separate 226 // event->native_event(). X11 is not so fortunate, there is no separate
249 // translated event type, so DesktopHostLinux sends an extra KeyEvent with 227 // translated event type, so DesktopHostLinux sends an extra KeyEvent with
250 // is_char() == true. We need to pass the ui::KeyEvent to the X11 function 228 // is_char() == true. We need to pass the ui::KeyEvent to the X11 function
251 // to detect this case so the right event type can be constructed. 229 // to detect this case so the right event type can be constructed.
252 #if defined(OS_WIN) 230 #if defined(OS_WIN)
231 if (!event->HasNativeEvent())
232 return blink::WebKeyboardEvent();
233
253 // Key events require no translation by the aura system. 234 // Key events require no translation by the aura system.
254 return MakeWebKeyboardEventFromNativeEvent(event->native_event()); 235 return MakeWebKeyboardEventFromNativeEvent(event->native_event());
255 #else 236 #else
256 return MakeWebKeyboardEventFromAuraEvent(event); 237 return MakeWebKeyboardEventFromAuraEvent(event);
257 #endif 238 #endif
258 } 239 }
259 240
260 blink::WebGestureEvent MakeWebGestureEvent(ui::GestureEvent* event) { 241 blink::WebGestureEvent MakeWebGestureEvent(ui::GestureEvent* event) {
261 blink::WebGestureEvent gesture_event; 242 blink::WebGestureEvent gesture_event;
262 #if defined(OS_WIN) 243 #if defined(OS_WIN)
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
360 webkit_event.deltaY = event->y_offset(); 341 webkit_event.deltaY = event->y_offset();
361 } 342 }
362 343
363 webkit_event.wheelTicksX = webkit_event.deltaX / kPixelsPerTick; 344 webkit_event.wheelTicksX = webkit_event.deltaX / kPixelsPerTick;
364 webkit_event.wheelTicksY = webkit_event.deltaY / kPixelsPerTick; 345 webkit_event.wheelTicksY = webkit_event.deltaY / kPixelsPerTick;
365 346
366 return webkit_event; 347 return webkit_event;
367 } 348 }
368 349
369 } // namespace content 350 } // namespace content
OLDNEW
« no previous file with comments | « ash/accelerators/key_hold_detector.cc ('k') | content/browser/renderer_host/web_input_event_aurax11.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698