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 #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(USE_X11) || defined(USE_OZONE) | |
19 // From third_party/WebKit/Source/web/gtk/WebInputEventFactory.cpp: | |
20 blink::WebUChar GetControlCharacter(int windows_key_code, bool shift) { | |
21 if (windows_key_code >= ui::VKEY_A && | |
22 windows_key_code <= ui::VKEY_Z) { | |
23 // ctrl-A ~ ctrl-Z map to \x01 ~ \x1A | |
24 return windows_key_code - ui::VKEY_A + 1; | |
25 } | |
26 if (shift) { | |
27 // following graphics chars require shift key to input. | |
28 switch (windows_key_code) { | |
29 // ctrl-@ maps to \x00 (Null byte) | |
30 case ui::VKEY_2: | |
31 return 0; | |
32 // ctrl-^ maps to \x1E (Record separator, Information separator two) | |
33 case ui::VKEY_6: | |
34 return 0x1E; | |
35 // ctrl-_ maps to \x1F (Unit separator, Information separator one) | |
36 case ui::VKEY_OEM_MINUS: | |
37 return 0x1F; | |
38 // Returns 0 for all other keys to avoid inputting unexpected chars. | |
39 default: | |
40 break; | |
41 } | |
42 } else { | |
43 switch (windows_key_code) { | |
44 // ctrl-[ maps to \x1B (Escape) | |
45 case ui::VKEY_OEM_4: | |
46 return 0x1B; | |
47 // ctrl-\ maps to \x1C (File separator, Information separator four) | |
48 case ui::VKEY_OEM_5: | |
49 return 0x1C; | |
50 // ctrl-] maps to \x1D (Group separator, Information separator three) | |
51 case ui::VKEY_OEM_6: | |
52 return 0x1D; | |
53 // ctrl-Enter maps to \x0A (Line feed) | |
54 case ui::VKEY_RETURN: | |
55 return 0x0A; | |
56 // Returns 0 for all other keys to avoid inputting unexpected chars. | |
57 default: | |
58 break; | |
59 } | |
60 } | |
61 return 0; | |
62 } | |
63 #endif | |
64 #if defined(OS_WIN) | 18 #if defined(OS_WIN) |
65 blink::WebMouseEvent MakeUntranslatedWebMouseEventFromNativeEvent( | 19 blink::WebMouseEvent MakeUntranslatedWebMouseEventFromNativeEvent( |
66 const base::NativeEvent& native_event); | 20 const base::NativeEvent& native_event); |
67 blink::WebMouseWheelEvent MakeUntranslatedWebMouseWheelEventFromNativeEvent( | 21 blink::WebMouseWheelEvent MakeUntranslatedWebMouseWheelEventFromNativeEvent( |
68 const base::NativeEvent& native_event); | 22 const base::NativeEvent& native_event); |
69 blink::WebKeyboardEvent MakeWebKeyboardEventFromNativeEvent( | 23 blink::WebKeyboardEvent MakeWebKeyboardEventFromNativeEvent( |
70 const base::NativeEvent& native_event); | 24 const base::NativeEvent& native_event); |
71 blink::WebGestureEvent MakeWebGestureEventFromNativeEvent( | 25 blink::WebGestureEvent MakeWebGestureEventFromNativeEvent( |
72 const base::NativeEvent& native_event); | 26 const base::NativeEvent& native_event); |
73 #elif defined(USE_X11) | 27 #elif defined(USE_X11) |
(...skipping 29 matching lines...) Expand all Loading... |
103 webkit_event.nativeKeyCode = character; | 57 webkit_event.nativeKeyCode = character; |
104 | 58 |
105 if (webkit_event.windowsKeyCode == ui::VKEY_RETURN) | 59 if (webkit_event.windowsKeyCode == ui::VKEY_RETURN) |
106 webkit_event.unmodifiedText[0] = '\r'; | 60 webkit_event.unmodifiedText[0] = '\r'; |
107 else | 61 else |
108 webkit_event.unmodifiedText[0] = ui::GetCharacterFromKeyCode( | 62 webkit_event.unmodifiedText[0] = ui::GetCharacterFromKeyCode( |
109 ui::KeyboardCodeFromNative(native_event), | 63 ui::KeyboardCodeFromNative(native_event), |
110 ui::EventFlagsFromNative(native_event)); | 64 ui::EventFlagsFromNative(native_event)); |
111 | 65 |
112 if (webkit_event.modifiers & blink::WebInputEvent::ControlKey) { | 66 if (webkit_event.modifiers & blink::WebInputEvent::ControlKey) { |
113 webkit_event.text[0] = | 67 webkit_event.text[0] = ui::GetControlCharacterForKeycode( |
114 GetControlCharacter( | 68 webkit_event.windowsKeyCode, |
115 webkit_event.windowsKeyCode, | 69 webkit_event.modifiers & blink::WebInputEvent::ShiftKey); |
116 webkit_event.modifiers & blink::WebInputEvent::ShiftKey); | |
117 } else { | 70 } else { |
118 webkit_event.text[0] = webkit_event.unmodifiedText[0]; | 71 webkit_event.text[0] = webkit_event.unmodifiedText[0]; |
119 } | 72 } |
120 | 73 |
121 webkit_event.setKeyIdentifierFromWindowsKeyCode(); | 74 webkit_event.setKeyIdentifierFromWindowsKeyCode(); |
122 | 75 |
123 return webkit_event; | 76 return webkit_event; |
124 } | 77 } |
125 #endif | 78 #endif |
126 #if defined(USE_X11) || defined(USE_OZONE) | 79 #if defined(USE_X11) || defined(USE_OZONE) |
(...skipping 280 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
407 webkit_event.deltaY = event->y_offset(); | 360 webkit_event.deltaY = event->y_offset(); |
408 } | 361 } |
409 | 362 |
410 webkit_event.wheelTicksX = webkit_event.deltaX / kPixelsPerTick; | 363 webkit_event.wheelTicksX = webkit_event.deltaX / kPixelsPerTick; |
411 webkit_event.wheelTicksY = webkit_event.deltaY / kPixelsPerTick; | 364 webkit_event.wheelTicksY = webkit_event.deltaY / kPixelsPerTick; |
412 | 365 |
413 return webkit_event; | 366 return webkit_event; |
414 } | 367 } |
415 | 368 |
416 } // namespace content | 369 } // namespace content |
OLD | NEW |