On Wed Feb 18 14:03:42 2026 +0000, Marc-Aurel Zent wrote:
As you mentioned in your previous comment, I had misunderstood the intended direction of the MR. However, since I still believed that separating the functionality of macdrv_ImeProcessKey was necessary, I went ahead and worked on it independently. I initially started this because a memory leak occurs when ImeToAsciiEx is not invoked. Does the memory leak still happen with the latest version? If you could give it a spin and see if everything is working as intended (at least on the Korean side of things), that would be much appreciated. Since you have moved the actual IME processing, the memory leak issue is no longer present.
I was not able to find any issues during Korean and Japanese keyboard testing. However, the current problem is that it is still operating in asynchronous mode (data->ime_process_vkey == 0). The imm_thread_data, ime_update related code in WINE_IME_PROCESS_KEY should be moved into WINE_IME_TO_ASCII_EX. I would like to note a few things that came to mind: - At this point, I do not think list_add_tail is still necessary here, but removing it would increase the scope of the changes. - When STATUS_BUFFER_TOO_SMALL is returned, macdrv_ImeToAsciiEx should not be executed again. - WM_KEYDOWN message should be generated when res == 0 && data->update == NULL. - IME messages should not be generated when res != 0 && data->update == NULL. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/9992#note_129906