win32 key_released fix
This commit is contained in:
parent
52dc62c4a2
commit
ec197c1a1b
1 changed files with 14 additions and 1 deletions
|
|
@ -265,7 +265,9 @@ static LRESULT CALLBACK wndproc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) {
|
|||
if(HIBYTE(VkKeyScan(wp)) & 2) n |= MwKEY_CONTROL_FLAG;
|
||||
if(msg == WM_SYSCHAR) n |= MwKEY_ALT_FLAG;
|
||||
|
||||
if((0x20 <= n && n <= 0x7f) || (n & MwKEY_FLAG)) MwLLDispatch(u->ll, key, &n);
|
||||
if((0x20 <= n && n <= 0x7f) || (n & MwKEY_FLAG)) {
|
||||
MwLLDispatch(u->ll, key, &n);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case WM_SETFOCUS:
|
||||
|
|
@ -322,6 +324,17 @@ static LRESULT CALLBACK wndproc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) {
|
|||
break;
|
||||
}
|
||||
|
||||
if(n == -1 && (msg == WM_KEYUP || msg == WM_SYSKEYUP)) {
|
||||
WORD ch;
|
||||
BYTE state[256];
|
||||
|
||||
GetKeyboardState(state);
|
||||
|
||||
if(ToAscii(wp, HIWORD(lp) & 0xff, state, &ch, 0)) {
|
||||
n = ch;
|
||||
}
|
||||
}
|
||||
|
||||
if((msg == WM_SYSKEYDOWN || msg == WM_SYSKEYUP) && n != -1 && wp != VK_MENU) {
|
||||
n |= MwKEY_ALT_FLAG;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue