Alexandre Julliard pushed to branch master at wine / wine
Commits: c0a81478 by Byeong-Sik Jeon at 2025-04-09T12:22:54+02:00 win32u: Support WM_IME_KEYDOWN message during ImeProcessKey.
In Korean input, when ime is in the composition state, if a non-printable key (ENTER, HOME, etc) is pressed, it returns a result_string and passes the key to WinProc with the WM_IME_KEYDOWN message.
This can be seen in ‘imm32/test/imm32.c::test_ga_na_da()’.
In the current winemac.drv, if I select the “Korean 2-Set Keyboard” as the input source and type ‘r-k-ENTER’, it only returns the result string ‘0xAC00’. No WM_IME_KEYDOWN message is generated.
At this point, the WINE_IME_POST_UPDATE call occurs and macdrv_ImeProcessKey returns FALSE. A FALSE return value means that the key has not been consumed by ime and the key should be passed to the WinProc as a raw WM_KEYDOWN.
However, because the ime_update call have occurred, ImeProcessKey should return TRUE and a raw WM_KEYDOWN message should be generated via a different path. So a WM_IME_KEYDOWN message is required.
This patch allows the macdrv_ImeProcessKey return value to be passed to ImeToAsciiEx() to determine if a WM_IME_KEYDOWN message should be generated.
- - - - -
4 changed files:
- dlls/imm32/ime.c - dlls/win32u/imm.c - dlls/wow64win/user.c - include/ntuser.h
View it on GitLab: https://gitlab.winehq.org/wine/wine/-/commit/c0a81478f52eb56d9778adb995556f5...