Chromium Code Reviews| Index: ui/events/event.cc |
| diff --git a/ui/events/event.cc b/ui/events/event.cc |
| index e817ca5dcdebcf77425d6f7dfea482c1db25f8dc..b5c7a68c3163281a230f58321ea2bb342ee9866e 100644 |
| --- a/ui/events/event.cc |
| +++ b/ui/events/event.cc |
| @@ -17,6 +17,7 @@ |
| #include "base/strings/stringprintf.h" |
| #include "ui/events/event_utils.h" |
| #include "ui/events/keycodes/dom3/dom_code.h" |
| +#include "ui/events/keycodes/dom3/dom_key.h" |
| #include "ui/events/keycodes/dom4/keycode_converter.h" |
| #include "ui/events/keycodes/keyboard_code_conversion.h" |
| #include "ui/gfx/geometry/safe_integer_conversions.h" |
| @@ -29,8 +30,9 @@ |
| #include "ui/events/keycodes/keyboard_code_conversion_x.h" |
| #elif defined(USE_OZONE) |
| #include "ui/events/keycodes/keyboard_code_conversion.h" |
| +#include "ui/ozone/public/keyboard_layouts.h" |
| +#include "ui/ozone/public/ozone_platform.h" |
|
kpschoedel
2014/11/20 16:18:38
Will need +ui/ozone dependency.
sadrul
2014/11/21 21:25:25
//ui/ozone has deps on //ui/events/, so we can't c
kpschoedel
2014/11/21 21:43:33
Argh. OK, this needs a rethink. Layout is fortunat
spang
2014/11/21 21:58:52
Can we really say it is orthogonal?
I think we sh
|
| #endif |
| - |
| namespace { |
| std::string EventTypeName(ui::EventType type) { |
| @@ -665,6 +667,17 @@ KeyEvent::KeyEvent(EventType type, |
| is_char_(false), |
| platform_keycode_(0), |
| character_(0) { |
| +#if defined(USE_OZONE) |
| + // TODO(kpschoedel): Change after keyboard_code_conversion_ozone. |
| + if (key_code_ == VKEY_UNKNOWN) { |
| + DomKey todo_dom_key = DomKey::NONE; |
| + OzonePlatform::GetInstance()->GetKeyboardLayouts()->Lookup(code_, |
| + this->flags(), |
| + &todo_dom_key, |
| + &character_, |
| + &key_code_); |
| + } |
| +#endif |
|
kpschoedel
2014/11/20 16:18:38
Should the Ozone event source instead be responsib
sadrul
2014/11/21 21:25:25
I think so, yeah.
kpschoedel
2014/11/21 21:43:33
In that case, I think we'll want the extended cons
|
| } |
| KeyEvent::KeyEvent(base::char16 character, KeyboardCode key_code, int flags) |
| @@ -738,6 +751,18 @@ base::char16 KeyEvent::GetCharacter() const { |
| return IsControlDown() ? |
| GetCharacterFromKeyCode(key_code_, flags()) : |
| GetCharacterFromXEvent(native_event()); |
| +#elif defined(USE_OZONE) |
| + DomKey todo_dom_key = DomKey::NONE; |
| + KeyboardCode dummy_key_code = VKEY_UNKNOWN; |
| + if (OzonePlatform::GetInstance()->GetKeyboardLayouts()->Lookup( |
| + code_, |
| + flags(), |
| + &todo_dom_key, |
| + &character_, |
| + &dummy_key_code)) { |
| + return character_; |
| + } |
| + return GetCharacterFromKeyCode(key_code_, flags()); |
| #else |
| if (native_event()) { |
| DCHECK(EventTypeFromNative(native_event()) == ET_KEY_PRESSED || |