Index: content/browser/renderer_host/native_web_keyboard_event_aura.cc |
diff --git a/content/browser/renderer_host/native_web_keyboard_event_aura.cc b/content/browser/renderer_host/native_web_keyboard_event_aura.cc |
index fa3d0d6d569a0712a536bce910ebe5a7993ac93b..15120bff81eb5690e578aa58c8f5463165150d50 100644 |
--- a/content/browser/renderer_host/native_web_keyboard_event_aura.cc |
+++ b/content/browser/renderer_host/native_web_keyboard_event_aura.cc |
@@ -4,10 +4,24 @@ |
#include "content/public/browser/native_web_keyboard_event.h" |
+#include "base/logging.h" |
#include "content/browser/renderer_host/web_input_event_aura.h" |
+#include "ui/base/events.h" |
using WebKit::WebKeyboardEvent; |
+namespace { |
+ |
+int EventFlagsToWebInputEventModifiers(int flags) { |
+ return |
+ (flags & ui::EF_SHIFT_DOWN ? WebKit::WebInputEvent::ShiftKey : 0) | |
+ (flags & ui::EF_CONTROL_DOWN ? WebKit::WebInputEvent::ControlKey : 0) | |
+ (flags & ui::EF_CAPS_LOCK_DOWN ? WebKit::WebInputEvent::CapsLockOn : 0) | |
+ (flags & ui::EF_ALT_DOWN ? WebKit::WebInputEvent::AltKey : 0); |
+} |
+ |
+} // namespace |
+ |
NativeWebKeyboardEvent::NativeWebKeyboardEvent() |
: os_event(NULL), |
skip_in_browser(false) { |
@@ -27,6 +41,36 @@ NativeWebKeyboardEvent::NativeWebKeyboardEvent( |
skip_in_browser(other.skip_in_browser) { |
} |
+// From chrome/common/native_web_keyboard_event_views.cc. |
sky
2011/12/01 17:01:09
Is this comment right (meaning I think you hat the
Yusuke Sato
2011/12/02 02:18:31
I actually copied (and then slightly modified) the
|
+NativeWebKeyboardEvent::NativeWebKeyboardEvent( |
+ ui::EventType key_event_type, |
+ bool is_char, |
+ wchar_t character, |
+ int state, |
+ double time_stamp_seconds) |
+ : os_event(NULL), |
+ skip_in_browser(true /* already handled by the input method */) { |
+ switch (key_event_type) { |
+ case ui::ET_KEY_PRESSED: |
+ type = is_char ? WebKit::WebInputEvent::Char : |
+ WebKit::WebInputEvent::RawKeyDown; |
+ break; |
+ case ui::ET_KEY_RELEASED: |
+ type = WebKit::WebInputEvent::KeyUp; |
+ break; |
+ default: |
+ NOTREACHED(); |
+ } |
+ |
+ modifiers = EventFlagsToWebInputEventModifiers(state); |
+ timeStampSeconds = time_stamp_seconds; |
+ windowsKeyCode = character; |
+ nativeKeyCode = character; |
+ text[0] = character; |
+ unmodifiedText[0] = character; |
+ isSystemKey = (state & ui::EF_ALT_DOWN) != 0; |
+} |
+ |
NativeWebKeyboardEvent& NativeWebKeyboardEvent::operator=( |
const NativeWebKeyboardEvent& other) { |
WebKeyboardEvent::operator=(other); |