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

Unified Diff: content/browser/renderer_host/web_input_event_aura.cc

Issue 548303003: Revert of Removing X11 native_event uses for key events. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: 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 side-by-side diff with in-line comments
Download patch
« 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 »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/browser/renderer_host/web_input_event_aura.cc
diff --git a/content/browser/renderer_host/web_input_event_aura.cc b/content/browser/renderer_host/web_input_event_aura.cc
index 69c8960fcd541a58f3376b0cc660bb8ce92b1566..a4cf12b0e51041a305be9a491011f1d83cef90e9 100644
--- a/content/browser/renderer_host/web_input_event_aura.cc
+++ b/content/browser/renderer_host/web_input_event_aura.cc
@@ -24,16 +24,20 @@
const base::NativeEvent& native_event);
blink::WebGestureEvent MakeWebGestureEventFromNativeEvent(
const base::NativeEvent& native_event);
-#endif
-#if defined(USE_X11) || defined(USE_OZONE)
+#elif defined(USE_X11)
+blink::WebKeyboardEvent MakeWebKeyboardEventFromAuraEvent(
+ ui::KeyEvent* event);
+#elif defined(USE_OZONE)
blink::WebKeyboardEvent MakeWebKeyboardEventFromAuraEvent(
ui::KeyEvent* event) {
+ const base::NativeEvent& native_event = event->native_event();
+ ui::EventType type = ui::EventTypeFromNative(native_event);
blink::WebKeyboardEvent webkit_event;
webkit_event.timeStampSeconds = event->time_stamp().InSecondsF();
webkit_event.modifiers = EventFlagsToWebEventModifiers(event->flags());
- switch (event->type()) {
+ switch (type) {
case ui::ET_KEY_PRESSED:
webkit_event.type = event->is_char() ? blink::WebInputEvent::Char :
blink::WebInputEvent::RawKeyDown;
@@ -48,16 +52,31 @@
if (webkit_event.modifiers & blink::WebInputEvent::AltKey)
webkit_event.isSystemKey = true;
- webkit_event.windowsKeyCode = event->GetLocatedWindowsKeyboardCode();
- webkit_event.nativeKeyCode = event->platform_keycode();
- webkit_event.unmodifiedText[0] = event->GetUnmodifiedText();
- webkit_event.text[0] = event->GetText();
+ wchar_t character = ui::KeyboardCodeFromNative(native_event);
+ webkit_event.windowsKeyCode = character;
+ webkit_event.nativeKeyCode = character;
+
+ if (webkit_event.windowsKeyCode == ui::VKEY_RETURN)
+ webkit_event.unmodifiedText[0] = '\r';
+ else
+ webkit_event.unmodifiedText[0] = ui::GetCharacterFromKeyCode(
+ ui::KeyboardCodeFromNative(native_event),
+ ui::EventFlagsFromNative(native_event));
+
+ if (webkit_event.modifiers & blink::WebInputEvent::ControlKey) {
+ webkit_event.text[0] = ui::GetControlCharacterForKeycode(
+ webkit_event.windowsKeyCode,
+ webkit_event.modifiers & blink::WebInputEvent::ShiftKey);
+ } else {
+ webkit_event.text[0] = webkit_event.unmodifiedText[0];
+ }
webkit_event.setKeyIdentifierFromWindowsKeyCode();
return webkit_event;
}
-
+#endif
+#if defined(USE_X11) || defined(USE_OZONE)
blink::WebMouseWheelEvent MakeWebMouseWheelEventFromAuraEvent(
ui::ScrollEvent* event) {
blink::WebMouseWheelEvent webkit_event;
@@ -221,6 +240,9 @@
}
blink::WebKeyboardEvent MakeWebKeyboardEvent(ui::KeyEvent* event) {
+ if (!event->HasNativeEvent())
+ return blink::WebKeyboardEvent();
+
// Windows can figure out whether or not to construct a RawKeyDown or a Char
// WebInputEvent based on the type of message carried in
// event->native_event(). X11 is not so fortunate, there is no separate
@@ -228,9 +250,6 @@
// is_char() == true. We need to pass the ui::KeyEvent to the X11 function
// to detect this case so the right event type can be constructed.
#if defined(OS_WIN)
- if (!event->HasNativeEvent())
- return blink::WebKeyboardEvent();
-
// Key events require no translation by the aura system.
return MakeWebKeyboardEventFromNativeEvent(event->native_event());
#else
« 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