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

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: Created 6 years, 4 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"
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
63 #endif 63 #endif
64 #if defined(OS_WIN) 64 #if defined(OS_WIN)
65 blink::WebMouseEvent MakeUntranslatedWebMouseEventFromNativeEvent( 65 blink::WebMouseEvent MakeUntranslatedWebMouseEventFromNativeEvent(
66 const base::NativeEvent& native_event); 66 const base::NativeEvent& native_event);
67 blink::WebMouseWheelEvent MakeUntranslatedWebMouseWheelEventFromNativeEvent( 67 blink::WebMouseWheelEvent MakeUntranslatedWebMouseWheelEventFromNativeEvent(
68 const base::NativeEvent& native_event); 68 const base::NativeEvent& native_event);
69 blink::WebKeyboardEvent MakeWebKeyboardEventFromNativeEvent( 69 blink::WebKeyboardEvent MakeWebKeyboardEventFromNativeEvent(
70 const base::NativeEvent& native_event); 70 const base::NativeEvent& native_event);
71 blink::WebGestureEvent MakeWebGestureEventFromNativeEvent( 71 blink::WebGestureEvent MakeWebGestureEventFromNativeEvent(
72 const base::NativeEvent& native_event); 72 const base::NativeEvent& native_event);
73 #elif defined(USE_X11) 73 #endif
74 blink::WebKeyboardEvent MakeWebKeyboardEventFromAuraEvent( 74 #if defined(USE_X11) || defined(USE_OZONE)
75 ui::KeyEvent* event);
76 #elif defined(USE_OZONE)
77 blink::WebKeyboardEvent MakeWebKeyboardEventFromAuraEvent( 75 blink::WebKeyboardEvent MakeWebKeyboardEventFromAuraEvent(
78 ui::KeyEvent* event) { 76 ui::KeyEvent* event) {
79 const base::NativeEvent& native_event = event->native_event();
80 ui::EventType type = ui::EventTypeFromNative(native_event);
81 blink::WebKeyboardEvent webkit_event; 77 blink::WebKeyboardEvent webkit_event;
82 78
83 webkit_event.timeStampSeconds = event->time_stamp().InSecondsF(); 79 webkit_event.timeStampSeconds = event->time_stamp().InSecondsF();
84 webkit_event.modifiers = EventFlagsToWebEventModifiers(event->flags()); 80 webkit_event.modifiers = EventFlagsToWebEventModifiers(event->flags());
85 81
86 switch (type) { 82 switch (event->type()) {
87 case ui::ET_KEY_PRESSED: 83 case ui::ET_KEY_PRESSED:
88 webkit_event.type = event->is_char() ? blink::WebInputEvent::Char : 84 webkit_event.type = event->is_char() ? blink::WebInputEvent::Char :
89 blink::WebInputEvent::RawKeyDown; 85 blink::WebInputEvent::RawKeyDown;
90 break; 86 break;
91 case ui::ET_KEY_RELEASED: 87 case ui::ET_KEY_RELEASED:
92 webkit_event.type = blink::WebInputEvent::KeyUp; 88 webkit_event.type = blink::WebInputEvent::KeyUp;
93 break; 89 break;
94 default: 90 default:
95 NOTREACHED(); 91 NOTREACHED();
96 } 92 }
97 93
98 if (webkit_event.modifiers & blink::WebInputEvent::AltKey) 94 if (webkit_event.modifiers & blink::WebInputEvent::AltKey)
99 webkit_event.isSystemKey = true; 95 webkit_event.isSystemKey = true;
100 96
101 wchar_t character = ui::KeyboardCodeFromNative(native_event); 97 webkit_event.windowsKeyCode = event->GetLocatedWindowsKeyboardCode();
102 webkit_event.windowsKeyCode = character; 98 webkit_event.nativeKeyCode = event->platform_keycode();
103 webkit_event.nativeKeyCode = character;
104 99
105 if (webkit_event.windowsKeyCode == ui::VKEY_RETURN) 100 if (webkit_event.windowsKeyCode == ui::VKEY_RETURN)
106 webkit_event.unmodifiedText[0] = '\r'; 101 webkit_event.unmodifiedText[0] = '\r';
107 else 102 else
108 webkit_event.unmodifiedText[0] = ui::GetCharacterFromKeyCode( 103 webkit_event.unmodifiedText[0] = event->GetCharacter();
109 ui::KeyboardCodeFromNative(native_event),
110 ui::EventFlagsFromNative(native_event));
111 104
112 if (webkit_event.modifiers & blink::WebInputEvent::ControlKey) { 105 if (webkit_event.modifiers & blink::WebInputEvent::ControlKey) {
113 webkit_event.text[0] = 106 webkit_event.text[0] =
114 GetControlCharacter( 107 GetControlCharacter(
115 webkit_event.windowsKeyCode, 108 webkit_event.windowsKeyCode,
116 webkit_event.modifiers & blink::WebInputEvent::ShiftKey); 109 webkit_event.modifiers & blink::WebInputEvent::ShiftKey);
117 } else { 110 } else {
118 webkit_event.text[0] = webkit_event.unmodifiedText[0]; 111 webkit_event.text[0] = webkit_event.unmodifiedText[0];
119 } 112 }
120 113
121 webkit_event.setKeyIdentifierFromWindowsKeyCode(); 114 webkit_event.setKeyIdentifierFromWindowsKeyCode();
122 115
123 return webkit_event; 116 return webkit_event;
124 } 117 }
125 #endif 118
126 #if defined(USE_X11) || defined(USE_OZONE)
127 blink::WebMouseWheelEvent MakeWebMouseWheelEventFromAuraEvent( 119 blink::WebMouseWheelEvent MakeWebMouseWheelEventFromAuraEvent(
128 ui::ScrollEvent* event) { 120 ui::ScrollEvent* event) {
129 blink::WebMouseWheelEvent webkit_event; 121 blink::WebMouseWheelEvent webkit_event;
130 122
131 webkit_event.type = blink::WebInputEvent::MouseWheel; 123 webkit_event.type = blink::WebInputEvent::MouseWheel;
132 webkit_event.button = blink::WebMouseEvent::ButtonNone; 124 webkit_event.button = blink::WebMouseEvent::ButtonNone;
133 webkit_event.modifiers = EventFlagsToWebEventModifiers(event->flags()); 125 webkit_event.modifiers = EventFlagsToWebEventModifiers(event->flags());
134 webkit_event.timeStampSeconds = event->time_stamp().InSecondsF(); 126 webkit_event.timeStampSeconds = event->time_stamp().InSecondsF();
135 webkit_event.hasPreciseScrollingDeltas = true; 127 webkit_event.hasPreciseScrollingDeltas = true;
136 128
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after
280 webkit_event.windowY = webkit_event.y = event->y(); 272 webkit_event.windowY = webkit_event.y = event->y();
281 273
282 const gfx::Point root_point = event->root_location(); 274 const gfx::Point root_point = event->root_location();
283 webkit_event.globalX = root_point.x(); 275 webkit_event.globalX = root_point.x();
284 webkit_event.globalY = root_point.y(); 276 webkit_event.globalY = root_point.y();
285 277
286 return webkit_event; 278 return webkit_event;
287 } 279 }
288 280
289 blink::WebKeyboardEvent MakeWebKeyboardEvent(ui::KeyEvent* event) { 281 blink::WebKeyboardEvent MakeWebKeyboardEvent(ui::KeyEvent* event) {
290 if (!event->HasNativeEvent())
291 return blink::WebKeyboardEvent();
292
293 // Windows can figure out whether or not to construct a RawKeyDown or a Char 282 // Windows can figure out whether or not to construct a RawKeyDown or a Char
294 // WebInputEvent based on the type of message carried in 283 // WebInputEvent based on the type of message carried in
295 // event->native_event(). X11 is not so fortunate, there is no separate 284 // event->native_event(). X11 is not so fortunate, there is no separate
296 // translated event type, so DesktopHostLinux sends an extra KeyEvent with 285 // translated event type, so DesktopHostLinux sends an extra KeyEvent with
297 // is_char() == true. We need to pass the ui::KeyEvent to the X11 function 286 // is_char() == true. We need to pass the ui::KeyEvent to the X11 function
298 // to detect this case so the right event type can be constructed. 287 // to detect this case so the right event type can be constructed.
299 #if defined(OS_WIN) 288 #if defined(OS_WIN)
289 if (!event->HasNativeEvent())
290 return blink::WebKeyboardEvent();
291
300 // Key events require no translation by the aura system. 292 // Key events require no translation by the aura system.
301 return MakeWebKeyboardEventFromNativeEvent(event->native_event()); 293 return MakeWebKeyboardEventFromNativeEvent(event->native_event());
302 #else 294 #else
303 return MakeWebKeyboardEventFromAuraEvent(event); 295 return MakeWebKeyboardEventFromAuraEvent(event);
304 #endif 296 #endif
305 } 297 }
306 298
307 blink::WebGestureEvent MakeWebGestureEvent(ui::GestureEvent* event) { 299 blink::WebGestureEvent MakeWebGestureEvent(ui::GestureEvent* event) {
308 blink::WebGestureEvent gesture_event; 300 blink::WebGestureEvent gesture_event;
309 #if defined(OS_WIN) 301 #if defined(OS_WIN)
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
407 webkit_event.deltaY = event->y_offset(); 399 webkit_event.deltaY = event->y_offset();
408 } 400 }
409 401
410 webkit_event.wheelTicksX = webkit_event.deltaX / kPixelsPerTick; 402 webkit_event.wheelTicksX = webkit_event.deltaX / kPixelsPerTick;
411 webkit_event.wheelTicksY = webkit_event.deltaY / kPixelsPerTick; 403 webkit_event.wheelTicksY = webkit_event.deltaY / kPixelsPerTick;
412 404
413 return webkit_event; 405 return webkit_event;
414 } 406 }
415 407
416 } // namespace content 408 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698