[PATCH v2 0/2] MR10913: Various IME fixes for FFXIV
These are small fixes that make sure that FFXIV correctly sees the current input source as IME capable, so the game will display an IME icon next to its chat box (IME input actually working is independent of this). On macOS, there is no such concept as open or closed IME. Whenever an IME keyboard layout is active, we should open/close the IME that is currently active. -- v2: https://gitlab.winehq.org/wine/wine/-/merge_requests/10913
From: Marc-Aurel Zent <mzent@codeweavers.com> --- dlls/winemac.drv/keyboard.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/dlls/winemac.drv/keyboard.c b/dlls/winemac.drv/keyboard.c index 8cf203c9fb8..38bb2a7ad69 100644 --- a/dlls/winemac.drv/keyboard.c +++ b/dlls/winemac.drv/keyboard.c @@ -1179,6 +1179,8 @@ BOOL macdrv_ActivateKeyboardLayout(HKL hkl, UINT flags) TRACE("hkl %p flags %04x\n", hkl, flags); + NtUserPostMessage( NULL, WM_WINE_IME_NOTIFY, IMN_WINE_SET_OPEN_STATUS, is_ime_hkl(hkl) ); + if (hkl == thread_data->active_keyboard_layout) return TRUE; -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/10913
From: Marc-Aurel Zent <mzent@codeweavers.com> --- dlls/imm32/ime.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dlls/imm32/ime.c b/dlls/imm32/ime.c index c4d71856e68..3cf7c1ed00a 100644 --- a/dlls/imm32/ime.c +++ b/dlls/imm32/ime.c @@ -419,7 +419,7 @@ static UINT ime_set_comp_string( HIMC himc, LPARAM lparam ) static LRESULT ime_ui_notify( HIMC himc, HWND hwnd, WPARAM wparam, LPARAM lparam ) { - TRACE( "himc %p, hwnd %p, wparam %s, lparam %#Ix\n", hwnd, himc, debugstr_imn(wparam), lparam ); + TRACE( "himc %p, hwnd %p, wparam %s, lparam %#Ix\n", himc, hwnd, debugstr_imn(wparam), lparam ); switch (wparam) { -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/10913
On Mon May 18 14:10:57 2026 +0000, Marc-Aurel Zent wrote:
changed this line in [version 2 of the diff](/wine/wine/-/merge_requests/10913/diffs?diff_id=268346&start_sha=611e3925798abab58bcef9fef65e50536f7a2097#e1636e55e7589edf6f062150e93e6b31ab259317_767_758) This does seem to be initialized based on the capabilities on native AFAICT, but to actually work in the game it also needs the changes in `ime_save_input_context`... I am not too sure why this is incompatible with the current `ok_eq( old_sentence, ctx->fdwSentence, UINT, "%#x" );` check we have, but that test also makes sense in itself.
I have split off these two commits from this MR, to not conflate the issues here and get some time to think about a proper solution and extra test. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/10913#note_140383
On Fri May 15 12:48:47 2026 +0000, Rémi Bernon wrote:
Not sure but doesn't open status denote whether the composition window is opened? Shouldn't this rather happen once we have started feeding keys to the IME? I am fairly sure that open status denotes whether the IME is activated, as in composition is possible, corresponding to the following icon in the taskbar for open:
{width=82 height=52} And the following icon for closed: {width=82 height=52} A closed IME always returns FALSE in ImeProcessKey() in my testing, but an open IME has nothing to do per se with an opened composition window. I see that in winex11 it is tied to `XIMPreeditEnable`/`XIMPreeditDisable`, but I am not too sure if this corresponds to the same concept... -- https://gitlab.winehq.org/wine/wine/-/merge_requests/10913#note_140385
This merge request was approved by Rémi Bernon. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/10913
participants (3)
-
Marc-Aurel Zent -
Marc-Aurel Zent (@mzent) -
Rémi Bernon (@rbernon)