diff options
author | garykac@chromium.org <garykac@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-12-03 12:01:49 +0000 |
---|---|---|
committer | garykac@chromium.org <garykac@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-12-03 12:01:49 +0000 |
commit | 8bf6535a1c2b39094c51413f57fce36ef71d8db7 (patch) | |
tree | 0de23ef1cfbe76ef87ebbdbfd4a8f5b1f20b6cd0 /content/renderer | |
parent | 4510c9abc1423563e603867b712b4986cdfd0d85 (diff) | |
download | chromium_src-8bf6535a1c2b39094c51413f57fce36ef71d8db7.zip chromium_src-8bf6535a1c2b39094c51413f57fce36ef71d8db7.tar.gz chromium_src-8bf6535a1c2b39094c51413f57fce36ef71d8db7.tar.bz2 |
Fix CodeForKeyboardEvent to properly calculate the scancode.
Current code just uses the key_event.nativeKeyCode which is copied
from the Windows' lParam. The proper scancode needs to be shifted
and masked out of the lParam (as is done for UsbKeyCodeForKeyboardEvent.
BUG=325015
Review URL: https://codereview.chromium.org/100533003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@238362 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/renderer')
-rw-r--r-- | content/renderer/pepper/usb_key_code_conversion_win.cc | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/content/renderer/pepper/usb_key_code_conversion_win.cc b/content/renderer/pepper/usb_key_code_conversion_win.cc index 21c26ab..c9e0592 100644 --- a/content/renderer/pepper/usb_key_code_conversion_win.cc +++ b/content/renderer/pepper/usb_key_code_conversion_win.cc @@ -23,8 +23,13 @@ uint32_t UsbKeyCodeForKeyboardEvent(const WebKeyboardEvent& key_event) { } const char* CodeForKeyboardEvent(const WebKeyboardEvent& key_event) { + // Extract the scancode and extended bit from the native key event's lParam. + int scancode = (key_event.nativeKeyCode >> 16) & 0x000000FF; + if ((key_event.nativeKeyCode & (1 << 24)) != 0) + scancode |= 0xe000; + ui::KeycodeConverter* key_converter = ui::KeycodeConverter::GetInstance(); - return key_converter->NativeKeycodeToCode(key_event.nativeKeyCode); + return key_converter->NativeKeycodeToCode(scancode); } } // namespace content |