diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2020-07-22 15:41:07 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2020-07-23 18:47:09 +0200 |
commit | a2a19a6965601ced75e3e48b2bf618ba2bdbd29e (patch) | |
tree | 89a4e79b60b7a36a2087cee68bc0e6f4f5fc4227 | |
parent | ff50fbf446f8902b91613930b6705d0074bd9872 (diff) | |
download | qtwebengine-a2a19a6965601ced75e3e48b2bf618ba2bdbd29e.tar.gz |
Convert native scancode on Windows to what Chromium expects
Fixes: QTBUG-85661
Change-Id: I7cd8ed534d94d6be06f77b9b2d1779905655e772
Reviewed-by: Kirill Burtsev <kirill.burtsev@qt.io>
-rw-r--r-- | src/core/web_event_factory.cpp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/core/web_event_factory.cpp b/src/core/web_event_factory.cpp index dd7ed90c7..5b6c6bd0e 100644 --- a/src/core/web_event_factory.cpp +++ b/src/core/web_event_factory.cpp @@ -205,7 +205,14 @@ static quint32 nativeKeyCodeForKeyEvent(const QKeyEvent *ev) // Cygwin/X, etc). Also evdev key codes are *not* supported for the same // reason. #if defined(Q_OS_WINDOWS) - return keyboardDriver() == KeyboardDriver::Windows ? ev->nativeScanCode() : 0; + if (keyboardDriver() == KeyboardDriver::Windows) { + // see GetScanCodeFromLParam in events_win_utils.cc: + quint32 scancode = ev->nativeScanCode() & 0xff; + if (ev->nativeScanCode() & 0x100) + scancode |= 0xe000; + return scancode; + } + return 0; #elif defined(Q_OS_MACOS) return keyboardDriver() == KeyboardDriver::Cocoa ? ev->nativeVirtualKey() : 0; #elif defined(Q_OS_LINUX) |