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

Unified Diff: ui/events/event.cc

Issue 742103002: Ozone keyboard layout (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@lite-code
Patch Set: Created 6 years, 1 month 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 | « no previous file | ui/events/events.gyp » ('j') | ui/events/events.gyp » ('J')
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 ||
« no previous file with comments | « no previous file | ui/events/events.gyp » ('j') | ui/events/events.gyp » ('J')

Powered by Google App Engine
This is Rietveld 408576698