Skip to content
Snippets Groups Projects

win32u: Add support WM_IME_KEYDOWN message translate

Merged Byeongsik Jeon requested to merge bsjeon/wine:wm_ime_keydown into master

In Korean input, if ime is in the composition state, when non-printable key (ENTER, TAB, etc.) are pressed, it returns a result_string and passes the non-printable 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 you select the “Korean 2-Set Keyboard” input source and type ‘r-k-ENTER’, it only outputs the result string ‘0xAC00’. WM_IME_KEYDOWN message generation does not exist.

At this point, the WINE_IME_POST_UPDATE call occurs, and macdrv_ImeProcessKey returns FALSE. A FALSE return value means that the key was not consumed by ime, and a WM_KEYDOWN message should be generated.

However, because an ime_update call occurred, ImeProcessKey should return TRUE, and (wparam not modified) 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.

Merge request reports

Merge request pipeline #40791 skipped

Merge request pipeline skipped for c0a81478

Merged by Alexandre JulliardAlexandre Julliard 1 week ago (Apr 9, 2025 9:35pm UTC)

Loading

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
Please register or sign in to reply
Loading