Index: ui/events/event.cc |
diff --git a/ui/events/event.cc b/ui/events/event.cc |
index 4a8370bb16aebee181bd887a4fcf4664ccea18f9..27de2a96b6a150891a4632df87890562f06a4eb0 100644 |
--- a/ui/events/event.cc |
+++ b/ui/events/event.cc |
@@ -620,9 +620,42 @@ KeyEvent::KeyEvent(base::char16 character, KeyboardCode key_code, int flags) |
key_code_(key_code), |
code_(""), |
is_char_(true), |
+ platform_keycode_(0), |
character_(character) { |
} |
+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_) { |
+ if (rhs.extended_key_event_data_) |
+ extended_key_event_data_.reset(rhs.extended_key_event_data_->Clone()); |
+} |
+ |
+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_key_event_data_) |
+ extended_key_event_data_.reset(rhs.extended_key_event_data_->Clone()); |
+ } |
+ return *this; |
+} |
+ |
+KeyEvent::~KeyEvent() {} |
+ |
+void KeyEvent::SetExtendedKeyEventData(scoped_ptr<ExtendedKeyEventData> data) { |
+ extended_key_event_data_ = data.Pass(); |
+} |
+ |
base::char16 KeyEvent::GetCharacter() const { |
if (character_) |
return character_; |