From deac8b83cf4b200c1905394c6f3fe2b1908ceb2c Mon Sep 17 00:00:00 2001 From: Thomas Bernard Date: Wed, 20 Jun 2018 17:29:05 +0200 Subject: [PATCH] keyboard support for windows --- src/input.c | 7 +++++++ src/win32screen.c | 9 +++++++++ 2 files changed, 16 insertions(+) diff --git a/src/input.c b/src/input.c index 7794df16..c2fc7888 100644 --- a/src/input.c +++ b/src/input.c @@ -1163,7 +1163,14 @@ int Get_input(int sleep_time) return 1; } if (user_feedback_required) + { + // Process the WM_CHAR event that follow WM_KEYDOWN + if(PeekMessage(&msg, NULL, WM_CHAR, WM_CHAR, PM_REMOVE)) { + TranslateMessage(&msg); + DispatchMessage(&msg); + } return 1; + } #endif return 0; } diff --git a/src/win32screen.c b/src/win32screen.c index cb59457f..06dcdaef 100644 --- a/src/win32screen.c +++ b/src/win32screen.c @@ -122,6 +122,15 @@ static LRESULT CALLBACK Win32_WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LP Key = KEY_MOUSEMIDDLE|Get_Key_modifiers(); return 0; // WM_MBUTTONDBLCLK + case WM_KEYDOWN: // lParam & 0xffff => repeat count. (lParam >> 16) & 0x1ff => scancode + Key = wParam; + user_feedback_required = 1; + return 0; + case WM_KEYUP: + return 0; + case WM_CHAR: + Key_ANSI = Key_UNICODE = wParam; + return 0; default: { char msg[256];