From cae8666561feb55c83a6af1a469a807e9f38b51a Mon Sep 17 00:00:00 2001 From: martinfouilleul Date: Thu, 9 Mar 2023 18:03:27 +0100 Subject: [PATCH] [ui, win32] Fixed char input and modifier keys --- src/mp_app.c | 5 +++++ src/osx_app.m | 5 ----- src/win32_app.c | 10 ++++++++++ 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/src/mp_app.c b/src/mp_app.c index cb9c4cd..a721b39 100644 --- a/src/mp_app.c +++ b/src/mp_app.c @@ -172,6 +172,11 @@ static void mp_update_key_state(mp_key_state* key, mp_key_action action) } } +static void mp_update_key_mods(mp_keymod_flags mods) +{ + __mpApp.inputState.keyboard.mods = mods; +} + static void mp_update_mouse_move(f32 x, f32 y, f32 deltaX, f32 deltaY) { u64 frameCounter = __mpApp.inputState.frameCounter; diff --git a/src/osx_app.m b/src/osx_app.m index 8f49982..68bd9c5 100644 --- a/src/osx_app.m +++ b/src/osx_app.m @@ -369,11 +369,6 @@ void mp_install_keyboard_layout_listener() object:nil]; } -static void mp_update_key_mods(mp_keymod_flags mods) -{ - __mpApp.inputState.keyboard.mods = mods; -} - //--------------------------------------------------------------- // Application and app delegate //--------------------------------------------------------------- diff --git a/src/win32_app.c b/src/win32_app.c index 91e5f07..9e74efb 100644 --- a/src/win32_app.c +++ b/src/win32_app.c @@ -455,6 +455,9 @@ LRESULT WinProc(HWND windowHandle, UINT message, WPARAM wParam, LPARAM lParam) event.key.code = mp_convert_win32_key(HIWORD(lParam) & 0x1ff); event.key.mods = mp_get_mod_keys(); mp_queue_event(&event); + + mp_update_key_mods(event.key.mods); + mp_update_key_state(&__mpApp.inputState.keyboard.keys[event.key.code], event.key.action); } break; case WM_KEYUP: @@ -467,6 +470,10 @@ LRESULT WinProc(HWND windowHandle, UINT message, WPARAM wParam, LPARAM lParam) event.key.code = mp_convert_win32_key(HIWORD(lParam) & 0x1ff); event.key.mods = mp_get_mod_keys(); mp_queue_event(&event); + + mp_update_key_mods(event.key.mods); + mp_update_key_state(&__mpApp.inputState.keyboard.keys[event.key.code], event.key.action); + } break; case WM_CHAR: @@ -478,6 +485,9 @@ LRESULT WinProc(HWND windowHandle, UINT message, WPARAM wParam, LPARAM lParam) str8 seq = utf8_encode(event.character.sequence, event.character.codepoint); event.character.seqLen = seq.len; mp_queue_event(&event); + + mp_update_text(event.character.codepoint); + } break; case WM_DROPFILES: