https://bugs.winehq.org/show_bug.cgi?id=55100
Bug ID: 55100 Summary: Final Fantasy XIV: Backspace stops working after backspacing Japanese composition string Product: Wine Version: 8.10 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: imm32 Assignee: wine-bugs@winehq.org Reporter: achurch+wine@achurch.org Distribution: ---
Created attachment 74666 --> https://bugs.winehq.org/attachment.cgi?id=74666 Possible fix
Environment: Linux, LANG=ja_JP.UTF-8, ATOK X3 (XIM)
In Final Fantasy XIV using Japanese input, after backspacing the last character in a pending composition string (with the fix for bug 55055 in https://gitlab.winehq.org/wine/wine/-/commit/e5646191723fa4b5e4cb38187e1611a... applied), the game no longer accepts backspace input in the text field. Specifically, given the following sequence:
1) Activate a text input field (such as the screenshot folder path entry field in Settings -> Other Settings from the title screen). 2) Press backspace in the input field and observe that the last character of the string is deleted. 3) Activate the IME. 4) Press the "A" key, giving the composition string "あ", which is displayed at the end of the string. 5) Press backspace, leaving an empty composition string.
Pressing backspace again should delete the character at the end of the string as in step 2, but instead does nothing. (Backspace also does not work after turning on the IME and before any input, as between steps 3 and 4, but does work correctly immediately after confirming a conversion.)
Sending WM_IME_ENDCOMPOSITION in ImeToAsciiEx() when dwCompStrLen is zero, as in the attached patch, seems to fix the bug, so FFXIV may be expecting an explicit ENDCOMPOSITION or similar message to switch from a "waiting for composition" state to "normal text input".