summaryrefslogtreecommitdiffstats
path: root/content/renderer
diff options
context:
space:
mode:
authorgarykac@chromium.org <garykac@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-12-03 12:01:49 +0000
committergarykac@chromium.org <garykac@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-12-03 12:01:49 +0000
commit8bf6535a1c2b39094c51413f57fce36ef71d8db7 (patch)
tree0de23ef1cfbe76ef87ebbdbfd4a8f5b1f20b6cd0 /content/renderer
parent4510c9abc1423563e603867b712b4986cdfd0d85 (diff)
downloadchromium_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.cc7
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