Details
-
Bug
-
Resolution: Duplicate
-
Not Evaluated
-
None
-
5.2.0
-
None
-
Windows 7 SP1, x64, 8GB RAM, Intel Core i7 CPU 860
Call Stack:
> qwindowsd.dll!QWindowsKeyMapper::updatePossibleKeyCodes(unsigned char * kbdBuffer=0x001fd1c0, unsigned int scancode=56, unsigned int vk_key=9830) Line 584 + 0x12 bytes C++
qwindowsd.dll!QWindowsKeyMapper::updateKeyMap(const tagMSG & msg={...}) Line 576 C++
qwindowsd.dll!QWindowsKeyMapper::translateKeyEvent(QWindow * widget=0x0762d988, HWND__ * hwnd=0x006a1406, const tagMSG & msg={...}, long * result=0x001fd43c) Line 751 C++
qwindowsd.dll!QWindowsContext::windowsProc(HWND__ * hwnd=0x006a1406, unsigned int message=258, QtWindows::WindowsEventType et=KeyEvent, unsigned int wParam=9830, long lParam=-1070071807, long * result=0x001fd43c) Line 853 + 0x47 bytes C++
qwindowsd.dll!qWindowsWndProc(HWND__ * hwnd=0x006a1406, unsigned int message=258, unsigned int wParam=9830, long lParam=-1070071807) Line 1073 + 0x24 bytes C++
Windows 7 SP1, x64, 8GB RAM, Intel Core i7 CPU 860 Call Stack: > qwindowsd.dll!QWindowsKeyMapper::updatePossibleKeyCodes(unsigned char * kbdBuffer=0x001fd1c0, unsigned int scancode=56, unsigned int vk_key=9830) Line 584 + 0x12 bytes C++ qwindowsd.dll!QWindowsKeyMapper::updateKeyMap(const tagMSG & msg={...}) Line 576 C++ qwindowsd.dll!QWindowsKeyMapper::translateKeyEvent(QWindow * widget=0x0762d988, HWND__ * hwnd=0x006a1406, const tagMSG & msg={...}, long * result=0x001fd43c) Line 751 C++ qwindowsd.dll!QWindowsContext::windowsProc(HWND__ * hwnd=0x006a1406, unsigned int message=258, QtWindows::WindowsEventType et=KeyEvent, unsigned int wParam=9830, long lParam=-1070071807, long * result=0x001fd43c) Line 853 + 0x47 bytes C++ qwindowsd.dll!qWindowsWndProc(HWND__ * hwnd=0x006a1406, unsigned int message=258, unsigned int wParam=9830, long lParam=-1070071807) Line 1073 + 0x24 bytes C++
Description
Not sure if this is fixed. Just ran across it today. Note: There should be a Platforms component for reporting purposes. This would fall under "Platforms:Windows".
---------------------------------------------------------------
In QWindowsKeyMapper::updatePossibleKeyCodes, an array of virtual keys is used with bounds of 256. The passed in virtual key is used as an index into this array. However, if you generate an extended key, by pressing Alt and numeric keyboard, the resulting virtual key is too large. In my case 9830 which is way over the array boundaries.
Offending Code:
// Fills keyLayout for that vk_key. Values are all characters one can type using that key
// (in connection with every combination of modifiers) and whether these "characters" are
// dead keys.
void QWindowsKeyMapper::updatePossibleKeyCodes(unsigned char *kbdBuffer, quint32 scancode,
quint32 vk_key)
{
-> if (!vk_key || (keyLayout[vk_key].exists && !keyLayout[vk_key].dirty))
return;
Attachments
Issue Links
- is replaced by
-
QTBUG-35532 Windows: Holding ALT while pressing Num9 four times (9999) asserts
- Closed