[PATCH 0/2] MR5207: Fixes for IME input on older macOS versions/hardware
I missed a system input method that we should exclude when looking for IMEs - the emoji Touch Bar. Also the mask applied to keyboard scan codes seems to result in some mismatched events and out-of-order input. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/5207
From: Tim Clem <tclem(a)codeweavers.com> Fixes weird keyboard behavior on MacBooks with the Touch Bar. --- dlls/winemac.drv/cocoa_app.m | 2 ++ 1 file changed, 2 insertions(+) diff --git a/dlls/winemac.drv/cocoa_app.m b/dlls/winemac.drv/cocoa_app.m index de3a23a5d2d..f6a9cd145ea 100644 --- a/dlls/winemac.drv/cocoa_app.m +++ b/dlls/winemac.drv/cocoa_app.m @@ -2075,6 +2075,8 @@ Dictation is its own source too (com.apple.inputmethod.ironwood), but CFSTR("com.apple.inputmethod.AssistiveControl"), /* The popup for accented characters when you hold down a key. */ CFSTR("com.apple.PressAndHold"), + /* Emoji list on MacBooks with the Touch Bar. */ + CFSTR("com.apple.inputmethod.EmojiFunctionRowItem"), }; CFStringRef sourceID = TISGetInputSourceProperty(inputSource, kTISPropertyInputSourceID); -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/5207
From: Tim Clem <tclem(a)codeweavers.com> Fixes missed key up events on older macOS versions, which could result in out-of-order input. Fix via Rémi Bernon <rbernon(a)codeweavers.com>. --- dlls/win32u/imm.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dlls/win32u/imm.c b/dlls/win32u/imm.c index d1dc1de8c55..4a9aca22360 100644 --- a/dlls/win32u/imm.c +++ b/dlls/win32u/imm.c @@ -583,7 +583,7 @@ LRESULT ime_driver_call( HWND hwnd, enum wine_ime_call call, WPARAM wparam, LPAR { struct imm_thread_data *data = get_imm_thread_data(); - data->ime_process_scan = HIWORD(lparam) & 0x1ff; + data->ime_process_scan = HIWORD(lparam); data->ime_process_vkey = LOWORD(wparam); res = user_driver->pImeProcessKey( params->himc, wparam, lparam, params->state ); data->ime_process_vkey = data->ime_process_scan = 0; @@ -597,7 +597,7 @@ LRESULT ime_driver_call( HWND hwnd, enum wine_ime_call call, WPARAM wparam, LPAR res = TRUE; } - TRACE( "processing scan %#x, vkey %#x -> %u\n", LOWORD(wparam), HIWORD(lparam) & 0x1ff, (UINT)res ); + TRACE( "processing scan %#x, vkey %#x -> %u\n", LOWORD(wparam), HIWORD(lparam), (UINT)res ); return res; } case WINE_IME_TO_ASCII_EX: -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/5207
This merge request was approved by Rémi Bernon. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/5207
participants (3)
-
Rémi Bernon -
Tim Clem -
Tim Clem (@tclem)