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

Unified Diff: ui/events/event.cc

Issue 492863002: mojo: Plumb through sufficient context to make real blink::WebInputEvents. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix ozone compile. 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 side-by-side diff with in-line comments
Download patch
Index: ui/events/event.cc
diff --git a/ui/events/event.cc b/ui/events/event.cc
index 4a8370bb16aebee181bd887a4fcf4664ccea18f9..1d3fb23bf09b9cc8328bcea603b54d63c606a9e5 100644
--- a/ui/events/event.cc
+++ b/ui/events/event.cc
@@ -538,6 +538,16 @@ void TouchEvent::UpdateForRootTransform(
}
////////////////////////////////////////////////////////////////////////////////
+// KeyEvent::ExtendedMojoData
+
+struct KeyEvent::ExtendedMojoData {
+ int32_t windows_key_code;
+ int32_t native_key_code;
+ uint16_t text;
+ uint16_t unmodified_text;
+};
+
+////////////////////////////////////////////////////////////////////////////////
// KeyEvent
// static
@@ -584,7 +594,8 @@ KeyEvent::KeyEvent(const base::NativeEvent& native_event)
code_(CodeFromNative(native_event)),
is_char_(IsCharFromNative(native_event)),
platform_keycode_(PlatformKeycodeFromNative(native_event)),
- character_(0) {
+ character_(0),
+ extended_mojo_data_() {
sky 2014/08/21 15:44:42 nit: remove as not needed (from all of these).
if (IsRepeated(*this))
set_flags(flags() | ui::EF_IS_REPEAT);
@@ -600,7 +611,8 @@ KeyEvent::KeyEvent(EventType type,
key_code_(key_code),
is_char_(false),
platform_keycode_(0),
- character_(GetCharacterFromKeyCode(key_code, flags)) {
+ character_(GetCharacterFromKeyCode(key_code, flags)),
+ extended_mojo_data_() {
}
KeyEvent::KeyEvent(EventType type,
@@ -612,7 +624,8 @@ KeyEvent::KeyEvent(EventType type,
code_(code),
is_char_(false),
platform_keycode_(0),
- character_(GetCharacterFromKeyCode(key_code, flags)) {
+ character_(GetCharacterFromKeyCode(key_code, flags)),
+ extended_mojo_data_() {
}
KeyEvent::KeyEvent(base::char16 character, KeyboardCode key_code, int flags)
@@ -620,7 +633,88 @@ KeyEvent::KeyEvent(base::char16 character, KeyboardCode key_code, int flags)
key_code_(key_code),
code_(""),
is_char_(true),
- character_(character) {
+ platform_keycode_(0),
+ character_(character),
+ extended_mojo_data_() {
+}
+
+KeyEvent::KeyEvent(const KeyEvent& rhs)
+ : Event(rhs),
+ key_code_(rhs.key_code_),
+ code_(rhs.code_),
+ is_char_(rhs.is_char_),
+ platform_keycode_(rhs.platform_keycode_),
+ character_(rhs.character_),
+ extended_mojo_data_() {
+ if (rhs.extended_mojo_data_) {
sky 2014/08/21 15:44:42 Why the setter and not just copy rhs.extended_mojo
+ SetSelfContainedKeyEventData(rhs.extended_mojo_data_->windows_key_code,
+ platform_keycode_,
+ rhs.extended_mojo_data_->text,
+ rhs.extended_mojo_data_->unmodified_text);
+ }
+}
+
+KeyEvent& KeyEvent::operator=(const KeyEvent& rhs) {
+ if (this != &rhs) {
+ Event::operator=(rhs);
+ key_code_ = rhs.key_code_;
+ code_ = rhs.code_;
+ is_char_ = rhs.is_char_;
+ platform_keycode_ = rhs.platform_keycode_;
+ character_ = rhs.character_;
+
+ if (rhs.extended_mojo_data_) {
+ SetSelfContainedKeyEventData(rhs.extended_mojo_data_->windows_key_code,
+ platform_keycode_,
+ rhs.extended_mojo_data_->text,
+ rhs.extended_mojo_data_->unmodified_text);
+ }
+ }
+ return *this;
+}
+
+KeyEvent::~KeyEvent() {}
+
+void KeyEvent::SetSelfContainedKeyEventData(int32_t windows_key_code,
+ int32_t platform_key_code,
+ base::char16 text,
+ base::char16 unmodified_text) {
+ extended_mojo_data_.reset(new ExtendedMojoData);
+ extended_mojo_data_->windows_key_code = windows_key_code;
+ extended_mojo_data_->text = text;
+ extended_mojo_data_->unmodified_text = unmodified_text;
+
sky 2014/08/21 15:44:42 You don't set native_key_code
+ platform_keycode_ = platform_key_code;
+}
+
+int32_t KeyEvent::GetWindowsKeyCode() const {
+ if (HasNativeEvent())
+ return ui::WindowsKeycodeFromNative(native_event());
+ else if (extended_mojo_data_)
sky 2014/08/21 15:44:42 nit: no else after a return (for all of these).
+ return extended_mojo_data_->windows_key_code;
+
+ NOTREACHED();
+ return 0;
+}
+
+base::char16 KeyEvent::GetKeyText() const {
+ if (HasNativeEvent())
+ return ui::TextFromNative(native_event());
+ else if (extended_mojo_data_)
+ return extended_mojo_data_->text;
+
+ NOTREACHED();
+ return 0;
+}
+
+base::char16 KeyEvent::GetKeyUnmodifiedText() const {
+ if (HasNativeEvent())
+ return ui::UnmodifiedTextFromNative(native_event());
+ else if (extended_mojo_data_)
+ return extended_mojo_data_->unmodified_text;
+
+ NOTREACHED();
+ return 0;
}
base::char16 KeyEvent::GetCharacter() const {

Powered by Google App Engine
This is Rietveld 408576698