Index: chrome/browser/chromeos/input_method/input_method_engine.cc |
diff --git a/chrome/browser/chromeos/input_method/input_method_engine.cc b/chrome/browser/chromeos/input_method/input_method_engine.cc |
index 4f7c33741b21e44f215b4182e377ed245a76e7c9..bd0cd218911900e0871d349f824b8e431396ef3b 100644 |
--- a/chrome/browser/chromeos/input_method/input_method_engine.cc |
+++ b/chrome/browser/chromeos/input_method/input_method_engine.cc |
@@ -4,11 +4,6 @@ |
#include "chrome/browser/chromeos/input_method/input_method_engine.h" |
-#define XK_MISCELLANY |
-#include <X11/keysymdef.h> |
-#include <X11/X.h> |
-#include <X11/Xlib.h> |
-#include <X11/Xutil.h> |
#undef FocusIn |
#undef FocusOut |
#undef RootWindow |
@@ -34,8 +29,6 @@ |
#include "ui/base/ime/chromeos/ime_keymap.h" |
#include "ui/events/event.h" |
#include "ui/events/event_processor.h" |
-#include "ui/events/keycodes/dom4/keycode_converter.h" |
-#include "ui/events/keycodes/keyboard_code_conversion_x.h" |
#include "ui/keyboard/keyboard_controller.h" |
#include "ui/keyboard/keyboard_util.h" |
@@ -266,24 +259,19 @@ bool InputMethodEngine::SendKeyEvents( |
const ui::EventType type = |
(event.type == "keyup") ? ui::ET_KEY_RELEASED : ui::ET_KEY_PRESSED; |
- // KeyboardCodeFromXKyeSym assumes US keyboard layout. |
- ui::KeycodeConverter* conv = ui::KeycodeConverter::GetInstance(); |
- DCHECK(conv); |
- |
- // DOM code (KeyA) -> XKB -> XKeySym (XK_A) -> KeyboardCode (VKEY_A) |
- const uint16 native_keycode = |
- conv->CodeToNativeKeycode(event.code.c_str()); |
- const uint xkeysym = ui::DefaultXKeysymFromHardwareKeycode(native_keycode); |
- const ui::KeyboardCode key_code = ui::KeyboardCodeFromXKeysym(xkeysym); |
- |
- const std::string code = event.code; |
int flags = ui::EF_NONE; |
flags |= event.alt_key ? ui::EF_ALT_DOWN : ui::EF_NONE; |
flags |= event.ctrl_key ? ui::EF_CONTROL_DOWN : ui::EF_NONE; |
flags |= event.shift_key ? ui::EF_SHIFT_DOWN : ui::EF_NONE; |
flags |= event.caps_lock ? ui::EF_CAPS_LOCK_DOWN : ui::EF_NONE; |
- ui::KeyEvent ui_event(type, key_code, code, flags, false /* is_char */); |
+ ui::KeyEvent ui_event(type, |
+ ui::FromCodeToKeyboardCode(event.code), |
+ event.code, |
+ flags, |
+ false /* is_char */); |
+ if (!event.key.empty()) |
+ ui_event.set_character(base::UTF8ToUTF16(event.key)[0]); |
base::AutoReset<const ui::KeyEvent*> reset_sent_key(&sent_key_event_, |
&ui_event); |
ui::EventDispatchDetails details = dispatcher->OnEventFromSource(&ui_event); |
@@ -584,6 +572,7 @@ void InputMethodEngine::Reset() { |
} |
namespace { |
+ |
void GetExtensionKeyboardEventFromKeyEvent( |
const ui::KeyEvent& event, |
InputMethodEngine::KeyboardEvent* ext_event) { |
@@ -597,28 +586,9 @@ void GetExtensionKeyboardEventFromKeyEvent( |
ext_event->ctrl_key = event.IsControlDown(); |
ext_event->shift_key = event.IsShiftDown(); |
ext_event->caps_lock = event.IsCapsLockDown(); |
- |
- uint32 x11_keysym = 0; |
- if (event.HasNativeEvent()) { |
- const base::NativeEvent& native_event = event.native_event(); |
- DCHECK(native_event); |
- |
- XKeyEvent* x_key = &(static_cast<XEvent*>(native_event)->xkey); |
- KeySym keysym = NoSymbol; |
- ::XLookupString(x_key, NULL, 0, &keysym, NULL); |
- x11_keysym = keysym; |
- } else { |
- // Convert ui::KeyEvent.key_code to DOM UIEvent key. |
- // XKeysymForWindowsKeyCode converts key_code to XKeySym, but it |
- // assumes US layout and does not care about CapLock state. |
- // |
- // TODO(komatsu): Support CapsLock states. |
- // TODO(komatsu): Support non-us keyboard layouts. |
- x11_keysym = ui::XKeysymForWindowsKeyCode(event.key_code(), |
- event.IsShiftDown()); |
- } |
- ext_event->key = ui::FromXKeycodeToKeyValue(x11_keysym); |
+ ext_event->key = UTF16ToUTF8(base::string16(1, event.GetCharacter())); |
} |
+ |
} // namespace |
void InputMethodEngine::ProcessKeyEvent( |