Fix Win32 keyboard input of CTRL/ALT/Shift keys
CTRL/ALT/SHIFT keys alone should be ignored add WM_SYSKEYDOWN event which is called when ALT is pressed
This commit is contained in:
parent
65c761345f
commit
9f82984896
@ -157,10 +157,23 @@ static LRESULT CALLBACK Win32_WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LP
|
|||||||
user_feedback_required = 1;
|
user_feedback_required = 1;
|
||||||
return 0;
|
return 0;
|
||||||
// WM_MBUTTONDBLCLK
|
// WM_MBUTTONDBLCLK
|
||||||
|
case WM_SYSKEYDOWN: // Sent when ALT is pressed
|
||||||
case WM_KEYDOWN: // lParam & 0xffff => repeat count. (lParam >> 16) & 0x1ff => scancode
|
case WM_KEYDOWN: // lParam & 0xffff => repeat count. (lParam >> 16) & 0x1ff => scancode
|
||||||
|
switch (wParam)
|
||||||
|
{
|
||||||
|
// Ignore isolated shift, alt, control and window keys
|
||||||
|
case VK_SHIFT:
|
||||||
|
case VK_CONTROL:
|
||||||
|
case VK_MENU:
|
||||||
|
case VK_LWIN:
|
||||||
|
case VK_RWIN:
|
||||||
|
break;
|
||||||
|
default:
|
||||||
Key = wParam|Get_Key_modifiers();
|
Key = wParam|Get_Key_modifiers();
|
||||||
user_feedback_required = 1;
|
user_feedback_required = 1;
|
||||||
|
}
|
||||||
return 0;
|
return 0;
|
||||||
|
case WM_SYSKEYUP:
|
||||||
case WM_KEYUP:
|
case WM_KEYUP:
|
||||||
return 0;
|
return 0;
|
||||||
case WM_CHAR:
|
case WM_CHAR:
|
||||||
@ -193,11 +206,7 @@ static LRESULT CALLBACK Win32_WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LP
|
|||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
default:
|
default:
|
||||||
{
|
GFX2_Log(GFX2_INFO, "Win32_WindowProc() unknown Message : 0x%04x wParam=%08x lParam=%08lx\n", uMsg, wParam, lParam);
|
||||||
char msg[256];
|
|
||||||
snprintf(msg, sizeof(msg), "unknown Message : 0x%04x wParam=%08x lParam=%08lx", uMsg, wParam, lParam);
|
|
||||||
Warning(msg);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return DefWindowProc(hwnd, uMsg, wParam, lParam);
|
return DefWindowProc(hwnd, uMsg, wParam, lParam);
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user