diff options
author | avi@chromium.org <avi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-03-04 21:04:04 +0000 |
---|---|---|
committer | avi@chromium.org <avi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-03-04 21:04:04 +0000 |
commit | 3ebf9af0cd55de5d312f0df5254580ab60ac0c64 (patch) | |
tree | 9d332e0833925545f0cdce851e349a9b109626b6 /webkit/glue/webinputevent_win.cc | |
parent | 076bf0b69eafa42accb20e5ccfe23805ed91655d (diff) | |
download | chromium_src-3ebf9af0cd55de5d312f0df5254580ab60ac0c64.zip chromium_src-3ebf9af0cd55de5d312f0df5254580ab60ac0c64.tar.gz chromium_src-3ebf9af0cd55de5d312f0df5254580ab60ac0c64.tar.bz2 |
Fixing WebKeyboardEvent.
Review URL: http://codereview.chromium.org/39075
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@10918 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/glue/webinputevent_win.cc')
-rw-r--r-- | webkit/glue/webinputevent_win.cc | 30 |
1 files changed, 22 insertions, 8 deletions
diff --git a/webkit/glue/webinputevent_win.cc b/webkit/glue/webinputevent_win.cc index bcf573c..3588154 100644 --- a/webkit/glue/webinputevent_win.cc +++ b/webkit/glue/webinputevent_win.cc @@ -6,10 +6,9 @@ #include "webkit/glue/webinputevent.h" -#include "webkit/glue/event_conversion.h" - -#undef LOG #include "base/logging.h" +#include "base/string_util.h" +#include "webkit/glue/webinputevent_util.h" static const unsigned long kDefaultScrollLinesPerWheelDelta = 3; @@ -177,9 +176,9 @@ WebMouseWheelEvent::WebMouseWheelEvent(HWND hwnd, UINT message, WPARAM wparam, // message == WM_HSCROLL, wparam == SB_LINELEFT (== SB_LINEUP). // * Scrolling right // message == WM_HSCROLL, wparam == SB_LINERIGHT (== SB_LINEDOWN). - if (WM_HSCROLL == message) { - key_state |= MK_SHIFT; - wheel_delta = -wheel_delta; + if (WM_HSCROLL == message) { + key_state |= MK_SHIFT; + wheel_delta = -wheel_delta; } // Use GetAsyncKeyState for key state since we are synthesizing @@ -310,13 +309,13 @@ WebKeyboardEvent::WebKeyboardEvent(HWND hwnd, UINT message, WPARAM wparam, actual_message.wParam = wparam; actual_message.lParam = lparam; - key_code = static_cast<int>(wparam); + windows_key_code = native_key_code = static_cast<int>(wparam); switch (message) { case WM_SYSKEYDOWN: system_key = true; case WM_KEYDOWN: - type = KEY_DOWN; + type = RAW_KEY_DOWN; break; case WM_SYSKEYUP: system_key = true; @@ -336,6 +335,21 @@ WebKeyboardEvent::WebKeyboardEvent(HWND hwnd, UINT message, WPARAM wparam, NOTREACHED() << "unexpected native message: " << message; } + memset(&text, 0, sizeof(text)); + memset(&unmodified_text, 0, sizeof(unmodified_text)); + memset(&key_identifier, 0, sizeof(key_identifier)); + + if (type == CHAR || type == RAW_KEY_DOWN) { + text[0] = windows_key_code; + unmodified_text[0] = windows_key_code; + } + if (type != CHAR) { + std::string key_identifier_str = + webkit_glue::GetKeyIdentifierForWindowsKeyCode(windows_key_code); + base::strlcpy(key_identifier, key_identifier_str.c_str(), + kIdentifierLengthCap); + } + if (GetKeyState(VK_SHIFT) & 0x8000) modifiers |= SHIFT_KEY; if (GetKeyState(VK_CONTROL) & 0x8000) |