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.